JavaScript页面滚动状态
我正在开发一个网页,我使用箭头按钮有两个功能-滚动到顶部和吸引访问者的注意 按钮有两种状态: ↑ - 使用onclick eventJavaScript页面滚动状态,javascript,jquery,button,scroll,Javascript,Jquery,Button,Scroll,我正在开发一个网页,我使用箭头按钮有两个功能-滚动到顶部和吸引访问者的注意 按钮有两种状态: ↑ - 使用onclick event$('html,body')转到顶部。动画({scrollTop:0},'fast')在用户滚动时激活 ↓ - 注意力吸引器(页面加载时的默认状态)-在$(窗口)时执行反弹动画。scrollTop()==0并且用户尚未滚动 但当我重新加载中间页面时,所有行为都会出错,箭头按钮对所有事件都会做出奇怪的反应。我尝试了许多方法来解决这个问题,但没有找到任何实用的解决方案
$('html,body')转到顶部。动画({scrollTop:0},'fast')
在用户滚动时激活
↓ - 注意力吸引器(页面加载时的默认状态)-在$(窗口)时执行反弹动画。scrollTop()==0
并且用户尚未滚动
但当我重新加载中间页面时,所有行为都会出错,箭头按钮对所有事件都会做出奇怪的反应。我尝试了许多方法来解决这个问题,但没有找到任何实用的解决方案
简化代码我有:
你介意告诉我我做错了什么,并最终告诉我如何解决这个烦恼吗?很抱歉代码中的混乱,我是JS初学者。我认为问题在于当你重新加载浏览器时,浏览器卡在了旧的滚动位置。托盘添加这个
$(window).on('beforeunload', function(){
$(window).scrollTop(0);
});
欢迎使用javascript。有几件事。。如前所述,页面在重新加载时保持其位置,因此一些函数正在初始化。此外,您应该养成习惯,将js和css保存在适当的文件中,以便于维护和调试。我已经对你的代码进行了一点重构,我想我已经让它按照你的期望工作了。主要修复方法是如上所述将页面滚动回顶部,并删除头部箭头上的rotate类,如下所示:
$(window).scrollTop(0);
$('#arrow').removeClass('rotateup rotatedwn');
另外,由于它在加载时执行scrolltop函数,因此我将window.scroll的超时添加到resetArrow函数的底部,这样就不会在init上调用这两个函数,这会导致状态混乱
在这里拨弄-浏览器会记住软/重新加载时的滚动位置,因此,如果我没有弄错,您只需要在执行任何逻辑之前首先计算滚动位置,而不是立即使用未签名的var
scrolled=“no”代码>简单易用:)谢谢,代码的概念很好,但对我的电脑来说,资源太多了,在Chrome中滚动到底部需要20%的CPU和300兆的RAM。但是谢谢你告诉我一些保持代码整洁的技巧:)