我在网站上使用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/

10-13 01:31