【问题标题】:ScrollTop js - Firefox doesn't workScrollTop js - Firefox 不工作
【发布时间】:2016-11-04 10:34:40
【问题描述】:

我的 scrollTop javascript 代码仅用于 Firefox 有问题。我在 href 链接上放置了一些锚点,并且只有在 chrome/explorer 上才能进行平滑滚动。火狐没有。它仅在该按钮上跳转,但不会滚动到该按钮。

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;
            }
        });
    };
}

【问题讨论】:

  • 试试:$scrollWrapper = $(window);
  • "Firefox scrollTop stackoverflow" 返回了很多结果。你看过这些吗?
  • 是的,但没有成功.. :( 我忘了说什么不起作用.. 它只跳到那个按钮上,但不会滚动到它..
  • @Guedes 是的,我做到了.. 什么都没有:(

标签: javascript css scrolltop


【解决方案1】:

Firefox 将溢出放置在 html 级别,除非特别设置为不同的行为。

要让它在 Firefox 中运行,请使用

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

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

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

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

【讨论】:

  • 好的,很高兴知道
猜你喜欢
  • 1970-01-01
  • 2011-03-03
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
相关资源
最近更新 更多