HTML:
<input id="btn1" type="button" value="回到顶部" />
CSS:
#btn1{position:fixed;bottom:10px;right:10px;}
JS:
window.onload=funcition(){ var oBtn=document.getElementById("btn"); var timer=null; //申明一个变量看是否为系统还是用户滚动 var sBys=true; window.onscroll=funcition(){ if(!sBys){ clearInterval(timer); } sBys=false; } oBtn.onclick=funcition(){ timer = setInterval(funcition(){ //获取scrollTop var scrollTop=document.documentElement.scrollTop||document.body.scrollTop; //当点击按钮回到顶部时计算缓冲速度 var ispeed=Math.floor(-scrollTop/8); if(scrollTop==0){ clearInterval(timer) } sBys=true; document.documentElement.scrollTop=document.body.scrollTop=scrollTop+ispeed; },30) } }
지식 포인트:
1. 계산 속도(버퍼링)는 반올림됩니다
2. scrollTop==0인 경우 타이머를 지워야 합니다.
3. 사용자가 스크롤바를 조작하는지, 아니면 js가 조작하는지 판단이 필요합니다. 사용자 조작이라면 타이머를 클리어하세요
위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.