我的脚本中确实有一个小错误,我不知道如何解决。
这里的所有内容都按预期工作,但是当我点击#backtop
并且文档滚动到顶部并再次设置display' : 'block
时。
请有人请解释如何防止这种情况。 非常感谢。
$(function () {
var didScroll;
var scrolled = 0;
var trigger = 900;
$(window).scroll(function () {
didScroll = true;
});
function hasScrolled() {
//store scroll position in var
var store = $(this).scrollTop();
if (scrolled < trigger) {
$('#backtop').css({'display': 'none'});
} else {
$('#backtop').css({'display': 'block'});
}
scrolled = store;
console.log('run')
}
setInterval(function () {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 1000);
$('#backtop').on('click', function (e) {
e.preventDefault();
$('html, body').animate({
scrollTop: $('#sec-1').offset().top
}, 'slow');
$('#backtop').css({'display': 'none'});
});
});
编辑: 小提琴:https://jsfiddle.net/107qs76o/
答案 0 :(得分:0)
您在计算后分配了滚动值。它应该在计算之前。即。
res