我一直在为我网站上的一些元素使用jQuery matchHeight。如果需要,我可以触发更新:
$.fn.matchHeight._update();
我的问题是我放松了滚动位置。有$.fn.matchHeight._maintainScroll = true;
我已经设置在函数的顶部,我将其称为matchHeight。并且连接到我的Slider onChange函数我得到了更新,就像这样;
$('#reviews-slider').owlCarousel({
loop: true,
margin: 0,
nav: false,
lazyLoad : true,
items: 1,
dots: true,
autoHeight:true,
itemElement: 'blockquote',
dotsSpeed: 400,
autoplay: false,
onChanged : function () {
$.fn.matchHeight._update();
}
});
有没有人知道我做错了什么以及为什么我保持滚动似乎不起作用。是否可以与_update
一起调用?我确实尝试将其置于更改功能中,但这仍然无效。
我希望使用维护滚动的原因是因为当我触发更新时,内容可能会相当长并导致页面位置跳转。 git页面底部有一个注释,但是我似乎无法使它工作。
答案 0 :(得分:0)
在ajax调用后出现同样的问题我的页面跳了起来。
似乎考虑了选项_maintainScrollPosition
,但由于bug或"特色错误" $(window).scrollTop()
在webkit浏览器中始终为0。
导致此问题的库代码:
// take note of scroll position
var scrollTop = $(window).scrollTop(), // seems to be 0 most of the time
// ***
// restore scroll position if enabled
if (matchHeight._maintainScroll) {
$(window).scrollTop((scrollTop / htmlHeight) * $('html').outerHeight(true));
}
我们都知道如何乘以0看起来像。
解决方案
不幸的是,这是一个激烈的CSS更改,您可以从html和body标签中删除height: 100%
。
例如,当您处理溢出容器时,身体上的overflow: hidden
也会失败。