fix: navigation fixes

v1.18.x
Barış Soner Uşaklı 4 years ago
parent 3d7e2e1e8e
commit 163d1a39ce

@ -341,14 +341,13 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co
var scrollTop = $(window).scrollTop();
var windowHeight = $(window).height();
var documentHeight = $(document).height();
var navbarHeight = components.get('navbar').outerHeight(true);
var topicHeaderHeight = $('.topic-header').height() || 0;
var middleOfViewport = scrollTop + (windowHeight / 2) - navbarHeight - topicHeaderHeight;
var middleOfViewport = scrollTop + (windowHeight / 2);
var previousDistance = Number.MAX_VALUE;
els.each(function () {
var elIndex = parseInt($(this).attr('data-index'), 10);
var $this = $(this);
var elIndex = parseInt($this.attr('data-index'), 10);
if (elIndex >= 0) {
var distanceToMiddle = Math.abs(middleOfViewport - $(this).offset().top);
var distanceToMiddle = Math.abs(middleOfViewport - ($this.offset().top + ($this.outerHeight(true) / 2)));
if (distanceToMiddle > previousDistance) {
return false;
}
@ -512,10 +511,11 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co
navigator.scrollActive = false;
return;
}
var postHeight = scrollTo.height();
var postHeight = scrollTo.outerHeight(true);
var navbarHeight = components.get('navbar').outerHeight(true);
var topicHeaderHeight = $('.topic-header').height() || 0;
var viewportHeight = $(window).height() - navbarHeight - topicHeaderHeight;
var topicHeaderHeight = $('.topic-header').outerHeight(true) || 0;
var viewportHeight = $(window).height();
// Temporarily disable navigator update on scroll
$(window).off('scroll', navigator.delayedUpdate);
@ -545,8 +545,8 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co
}
var scrollTop = 0;
if (postHeight < viewportHeight) {
scrollTop = (scrollTo.offset().top - (viewportHeight / 2) + (postHeight)) - topicHeaderHeight;
if (postHeight < viewportHeight - navbarHeight - topicHeaderHeight) {
scrollTop = scrollTo.offset().top - (viewportHeight / 2) + (postHeight / 2);
} else {
scrollTop = scrollTo.offset().top - navbarHeight - topicHeaderHeight;
}

Loading…
Cancel
Save