ScrollTop js - Firefox不起作用

时间:2016-11-04 10:34:40

标签: javascript css scrolltop

我的fireTop javascript代码只有firefox有问题。我已经在href链接上添加了一些锚点,并且只有在chrome / explorer上才能处理平滑滚动。在Firefox上没有。它仅在该按钮上跳转,但不会滚动到该按钮。

Firefox控制台错误:此网站似乎使用滚动链接定位效果。这可能不适用于异步平移;有关详细信息,请参阅https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects,并加入有关相关工具和功能的讨论!

我的代码:

if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
    $scrollWrapper = $(document);

    scroll = function scroll(value, hash) {
        $scrollWrapper.scrollTop(value);
        currentHash = hash;
    };
} else {
    $scrollWrapper = $('html, body');

    scroll = function scroll(value, hash) {
        $(document).off('scroll.currentHash');

        $scrollWrapper.animate({
            scrollTop: value + 30
        }, {
            delay: 500,
            complete: function () {
                currentHash = hash;
            }
        });
    };
}

1 个答案:

答案 0 :(得分:0)

Firefox将溢出放在html级别,除非特别设计为表现不同。

要在Firefox中使用它,请使用

$('body,html').animate( ... );

工作示例 http://jsfiddle.net/4etct/ CSS解决方案是设置以下样式:

html { overflow: hidden; height: 100%; }
body { overflow: auto; height: 100%; }

我认为JS解决方案的侵入性最小。