如果元素链接到同一页面上的锚点,则我的jQuery平滑滚动有效,但是当链接到不同页面上的锚点时,它不能平滑滚动。
我的jQuery脚本是否存在明显的问题?
<script>
jQuery(function($) {
// //////////////////////// Smooth Scroll To Specific Element On Page ////////////////////////
$(document).ready(function() {
$('a[href^="#"]').not('.carousel-control-prev').not('.carousel-control-next').bind('click.smoothscroll', function(e) {
e.preventDefault();
var hash = this.hash;
jQuery('html, body').animate({
scrollTop: jQuery(hash).offset().top - 65
}, 1500, function(){});
});
});
//////////////////////// Smooth Scroll To Specific Element On Different Page ////////////////////////
$(document).ready(function(){
var urlHash = window.location.href.split("#")[1] || false;
if (urlHash.length > 0)
$('html,body').animate({
scrollTop: $('#' + urlHash).offset().top - 60
}, 2500);
});
});
答案 0 :(得分:1)
这应该有效,可以尝试吗?另外有时,如果已经加载了url,它有时会滚动到没有动画的哈希值,然后先尝试不通过缓存重新加载(Shift + F5)或(Ctrl + F5)
$(document).ready(function () {
var urlHash = window.location.href.split("#")[1];
if (urlHash && $('#' + urlHash).length )
$('html,body').animate({
scrollTop: $('#' + urlHash).offset().top - 60
}, 2500);
});