我在网站上使用jQuery matchHeight作为一些元素。如果需要,我可以触发触发更新:
$.fn.matchHeight._update();
我的问题是我松动了滚动位置。我在要调用matchHeight的函数顶部设置了
$.fn.matchHeight._maintainScroll = true;
。并连接到我的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
一起调用吗?我确实尝试将其放在change函数中,但是仍然无法正常工作。我之所以要使用维持滚动,是因为当我触发更新时,内容可能会更长,并导致页面位置跳变。在git页面的底部有个注释,但是我似乎无法正常工作。
最佳答案
一个ajax调用后出现了同样的问题,我的页面跳了起来。
似乎已考虑使用_maintainScrollPosition
选项,但是由于bug或“功能错误”,在Webkit浏览器中$(window).scrollTop()
始终为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
也会失败。关于javascript - jQuery matchHeightmaintainScroll不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27381499/