javascript - 粘性/快速滚动不会向上滚动

标签 javascript jquery

我有一个脚本,允许在向下移动时快速滚动,但我无法让它允许用户向上滚动。

var items = $(".item");
var animating = false;

$(window).scroll(function() {
    clearTimeout($.data(this, 'scrollTimer'));
    if (!animating) {
        $.data(this, 'scrollTimer', setTimeout(function() {
            items.each(function(key, value) {
                if ($(value).offset().top > $(window).scrollTop()) {
                    animating = true;
                    $('body').animate( { scrollTop: $(value).offset().top + 'px' }, 1000);
                    setTimeout(function() { animating = false; }, 500);
                    return false;
                }
            });
        }, 50));
    }
});

http://jsfiddle.net/kZY9R/77/

最佳答案

你必须做

var body = $("html, body");

$(body).stop().animate( { scrollTop: $(value).offset().top)}, 1000,'swing');

Chrome 读取 body 并滚动,Firefox 需要 html 才能完成

Check Working Fiddle

关于javascript - 粘性/快速滚动不会向上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34714502/

相关文章:

javascript - 无限石工卷轴不起作用

javascript - 验证验证组

javascript - requireJS:移植 C++ 类,不想两次声明类名

javascript - 避免多次添加事件

javascript - 使用 javascript/jquery 添加/附加 '<script>' 标签到 html

javascript - 如何根据先前多行列表的选择动态加载下拉列表

javascript - 生成唯一的数字

javascript - 使用谷歌地图查找大量节点的最短路径

javascript - 提交表单以选择 option.onClick

javascript - 如何将此 RegEx 转换为 JavaScript RegExp 对象?