Javascript 滚动至顶部按钮,jQuery在Safari v中不起作用。7.0.5?

Javascript 滚动至顶部按钮,jQuery在Safari v中不起作用。7.0.5?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在构建一个Tumblr主题,我的返回顶部按钮遇到了一些问题。它似乎在Chrome、Firefox和更新版本的Safari上运行,但在我的Safari版本(7.0.5)上,链接可以将链接指向顶部,但动画滚动条不起作用。如果有帮助,我也在使用jquery版本1.10.1 我试过各种方法,但看不出哪里出了问题。我想可能有一些东西与之冲突,但我不是100%确定 下面是我正在使用的代码,如果检查有帮助,这里有一个指向主题的链接 如有任何建议或帮助,将不胜感激 HTML JS $(文档).rea

我正在构建一个Tumblr主题,我的返回顶部按钮遇到了一些问题。它似乎在Chrome、Firefox和更新版本的Safari上运行,但在我的Safari版本(7.0.5)上,链接可以将链接指向顶部,但动画滚动条不起作用。如果有帮助,我也在使用jquery版本1.10.1

我试过各种方法,但看不出哪里出了问题。我想可能有一些东西与之冲突,但我不是100%确定

下面是我正在使用的代码,如果检查有帮助,这里有一个指向主题的链接

如有任何建议或帮助,将不胜感激

HTML


JS


$(文档).ready(函数(){
功能滚动至anchor(辅助){
var aTag=$(“a[name='”+aid+']);
$('html,body').animate({scrollTop:aTag.offset().top},'slow');
}
$(“a”)。单击(函数(){
var href=$(this.attr('href').replace('#','')
scrollToAnchor(href);
});         
});

您可以尝试阻止锚定标记的默认行为:

<script> 
    $(document).ready(function() {
        function scrollToAnchor(aid){
            var aTag = $("a[name='"+ aid +"']");
            $('html,body').animate({scrollTop: aTag.offset().top},'slow');
        }
        $("a").click(function(e) {
            //Add the e parameter to get the event object and call preventDefault.
            e.preventDefault();
            var href = $(this).attr('href').replace('#', '')
            scrollToAnchor(href);
        });         
    });
</script>

$(文档).ready(函数(){
功能滚动至anchor(辅助){
var aTag=$(“a[name='”+aid+']);
$('html,body').animate({scrollTop:aTag.offset().top},'slow');
}
$(“a”)。单击(功能(e){
//添加e参数以获取事件对象并调用preventDefault。
e、 预防默认值();
var href=$(this.attr('href').replace('#','')
scrollToAnchor(href);
});         
});

结果是,建议的“防止”默认值破坏了页面上的所有a链接,我没有意识到的是我有一个高度:100%在正文上,html阻止了“返回顶部”按钮工作。移除后,返回顶部工作。

$(this).attr('href')。替换('#','')
。。。你不必到处使用jQuery:
this.href.substring(1)
对不起,你能解释一下我有点困惑吗?
this.href.substring(1)
做同样的事情,但不需要复杂的jQuery对象修改和访问。我明白了,所以你建议我更改var href=$(this.attr('href')。用这个.href.substring(1)替换('.#','') ?? 如果是这样的话,我尝试了这个,但似乎没有解决问题。它还破坏了其他两个浏览器。
<script> 
$(document).ready(function() {
            function scrollToAnchor(aid){
                var aTag = $("a[name='"+ aid +"']");
                $('html,body').animate({scrollTop: aTag.offset().top},'slow');
            }
            $("a").click(function() {
                var href = $(this).attr('href').replace('#', '')
                scrollToAnchor(href);
            });         
        });
</script>
<script> 
    $(document).ready(function() {
        function scrollToAnchor(aid){
            var aTag = $("a[name='"+ aid +"']");
            $('html,body').animate({scrollTop: aTag.offset().top},'slow');
        }
        $("a").click(function(e) {
            //Add the e parameter to get the event object and call preventDefault.
            e.preventDefault();
            var href = $(this).attr('href').replace('#', '')
            scrollToAnchor(href);
        });         
    });
</script>