Include the overlaying page header in position calculations
authorAlexander Ebert <ebert@woltlab.com>
Wed, 29 Jan 2020 21:49:08 +0000 (22:49 +0100)
committerAlexander Ebert <ebert@woltlab.com>
Wed, 29 Jan 2020 21:49:08 +0000 (22:49 +0100)
wcfsetup/install/files/js/WoltLabSuite/Core/Ui/Alignment.js

index e3d2c6beedd1325e982da3d92402884dd394f60b..d34d50144a36e5b90804a0eec08c77f9f02ff7bd 100644 (file)
@@ -233,11 +233,23 @@ define(['Core', 'Language', 'Dom/Traverse', 'Dom/Util'], function(Core, Language
                        var bottom = 'auto';
                        var top = 'auto';
                        var result = true;
+
+                       var pageHeaderOffset = 50;
+                       var pageHeaderPanel = elById('pageHeaderPanel');
+                       if (pageHeaderPanel !== null) {
+                               var position = window.getComputedStyle(pageHeaderPanel).position;
+                               if (position === 'fixed' || position === 'static') {
+                                       pageHeaderOffset = pageHeaderPanel.offsetHeight;
+                               }
+                               else {
+                                       pageHeaderOffset = 0;
+                               }
+                       }
                        
                        if (align === 'top') {
                                var bodyHeight = document.body.clientHeight;
                                bottom = (bodyHeight - refOffsets.top) + verticalOffset;
-                               if (bodyHeight - (bottom + elDimensions.height) < (window.scrollY || window.pageYOffset)) {
+                               if (bodyHeight - (bottom + elDimensions.height) < (window.scrollY || window.pageYOffset) + pageHeaderOffset) {
                                        result = false;
                                }
                        }