首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >平滑滚动Javascript在一台Mac (Chrome)上失败,但在另一台Mac (Chrome)上工作

平滑滚动Javascript在一台Mac (Chrome)上失败,但在另一台Mac (Chrome)上工作
EN

Stack Overflow用户
提问于 2017-09-21 00:49:54
回答 1查看 96关注 0票数 0

我们有一个平滑的滚动脚本,在一些Mac机器上失败(最新的chrome)。

我们稍微调整了一下脚本,现在它似乎可以在所有Mac上运行了。

但是我们不知道为什么。

有人能帮帮忙吗?

之前(对于某些Mac/Chrome测试机,无法正确平滑滚动):

代码语言:javascript
复制
var topID = (ua("safari")) ? "body" : "html";

$(".SmoothScroll").unbind().click(function(){
    var link = $(this).attr("href");
    if(link.charAt(0)=="#" && link.charAt(1)!="") {
        var offset = $(link).offset();
        var tid = setTimeout(function() {
            $(topID).stop().animate({scrollTop: offset.top}, 800, "easeInOutCubic", function() {
                location.href = link;
            });
        }, 10);
        return false;
    }
});

修复后(适用于所有计算机)

代码语言:javascript
复制
//var topID = (ua("safari")) ? "body" : "html";
var $root = $('html, body');

$(".SmoothScroll").unbind().click(function(){
    var link = $(this).attr("href");
    if(link.charAt(0)=="#" && link.charAt(1)!="") {
        var offset = $(link).offset();
        var tid = setTimeout(function() {
            $root.stop().animate({scrollTop: offset.top}, 800, "easeInOutCubic", function() {
                location.href = link;
            });
        }, 10);
        return false;
    }
});

基本上,将$(topID)更改为$('html,body')似乎是可行的。但是为什么呢?发生了什么?之前的脚本在某些Mac+Chrome上失败的原因可能是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-09-21 00:58:44

您可能在两台mac上安装了不同版本的safari。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46327682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档