javascript - jQuery matchHeight maintainScroll 不工作

标签 javascript jquery

我一直在使用 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 页面的底部有一个注释,但是我似乎无法让它工作。

最佳答案

ajax 调用后出现同样的问题,我的页面跳了起来。 似乎考虑了选项 _maintainScrollPosition$(window).scrollTop() 由于 bug 在 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 也会失败。

关于javascript - jQuery matchHeight maintainScroll 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27381499/

相关文章:

javascript - enzyme 测试问题返回未定义

javascript - 如何从datepicker jquery插件获取日期?

javascript - AngularJS 自定义日期选择器指令

javascript - 如何在javascript中删除对象的一部分

javascript - jquery。如何等于 .text() .val()

jquery - 使用 Uploadify 在 Django 中上传文件获取 HTTP 响应代码 403

javascript - slider 连续开关

javascript - 如何使用JS修改对象数组?

javascript - 使用 Angular-cli 的 D3 V4 多线图

javascript - 在不重新加载整个页面的情况下重新加载 DIV