Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript页面滚动状态_Javascript_Jquery_Button_Scroll - Fatal编程技术网

JavaScript页面滚动状态

JavaScript页面滚动状态,javascript,jquery,button,scroll,Javascript,Jquery,Button,Scroll,我正在开发一个网页,我使用箭头按钮有两个功能-滚动到顶部和吸引访问者的注意 按钮有两种状态: ↑ - 使用onclick event$('html,body')转到顶部。动画({scrollTop:0},'fast')在用户滚动时激活 ↓ - 注意力吸引器(页面加载时的默认状态)-在$(窗口)时执行反弹动画。scrollTop()==0并且用户尚未滚动 但当我重新加载中间页面时,所有行为都会出错,箭头按钮对所有事件都会做出奇怪的反应。我尝试了许多方法来解决这个问题,但没有找到任何实用的解决方案

我正在开发一个网页,我使用箭头按钮有两个功能-滚动到顶部和吸引访问者的注意

按钮有两种状态:

↑ - 使用onclick event
$('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。但是谢谢你告诉我一些保持代码整洁的技巧:)