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