我已经在我的网页上显示了一个回到顶部的按钮,我正在努力。向下滚动时,有时单击它会跳到顶部,然后跳回到你在页面上的位置,然后顺畅地滚动到顶部,就像它应该的那样。请记住,它不会一直这样做。这只是一个滞后或故障问题,还是我的脚本中有错误?
$(function(){
$(document).on( 'scroll', function(){
if ($(window).scrollTop() > 615) {
$('.ion-android-arrow-dropup-circle').addClass('show');
} else {
$('.ion-android-arrow-dropup-circle').removeClass('show');
}
});
$('.ion-android-arrow-dropup-circle').on('click', scrollToTop);
});
function scrollToTop() {
verticalOffset = typeof(verticalOffset) != 'undefined' ? verticalOffset : 0;
element = $('body');
offset = element.offset();
offsetTop = offset.top;
$('html, body').animate({scrollTop: offsetTop}, 500, 'linear');
};
搜索了40多个问题,但无法找到答案。只是说这个,因为如果你没有,有人找到一个他们总是说,"你应该先问一下。"我一直都在看。
答案 0 :(得分:1)
回答我自己的问题
经过这么长时间没有回复我已经继续前进,并决定当时不担心这个问题。今天,我使用相同的jQuery脚本在不同的站点上工作,并遇到了同样的问题。我决定尝试自己修复它,因为我无法在这个问题上找到帮助。
解决方案很简单!我不知道第一次错过了它。我所做的只是采用上面的代码并添加一个函数:
$('.ion-android-arrow-dropup-circle').click(function(event) {
event.preventDefault()
});
我忘记了所有需要删除点击跳转到目的地的链接的默认操作。它现在非常流畅,看起来很棒,就像我想要开始一样!
我完全更新的脚本供您参考:
$(function(){
$(document).on( 'scroll', function(){
if ($(window).scrollTop() > 50) {
$('.ion-eject').addClass('show');
} else {
$('.ion-eject').removeClass('show');
}
});
$('.ion-eject').click(function(event) {
event.preventDefault()
});
$('.ion-eject').on('click', scrollToTop);
});
function scrollToTop() {
verticalOffset = typeof(verticalOffset) != 'undefined' ? verticalOffset : 0;
element = $('body');
offset = element.offset();
offsetTop = offset.top;
$('html, body').animate({scrollTop: offsetTop}, 200, 'linear');
};