這段代碼的滾動事件觸發(fā)不了,請問哪里不對呢?
window.onload=function(){
// 獲取對應(yīng)操作元素
var obtn=document.getElementById("btn");
var timer=null;
var otop=true;
// 滾動條滾動事件
window.onscroll=function(){
if(!otop){
clearInterval(timer);
}
otop=false;
}
// 給按鈕添加點擊事件
obtn.onclick=function(){
// 綁定定時器
timer=setInterval(function(){
// 獲取滾動距離
var istop=document.documentElement.scrollTop||document.body.scrollTop;
// 添加滾動速度
var ispeed=Math.floor(-istop/5);
// 改變滾動距離
document.documentElement.scrollTop=document.body.scrollTop = istop+ispeed;
otop=true;
// 判定當(dāng)滾動距離為0或小于0時,清除定時器
if(istop <= 0){
istop=0;
clearInterval(timer);
}
},50);
}
};
這段代碼的滾動事件觸發(fā)不了,請問哪里不對呢?
2015-12-31
在執(zhí)行onclick事件中,已經(jīng)觸發(fā)了onscroll 事件。因為瀏覽器滾動條滾動時就會觸發(fā) onscroll 事件,通常情況下指上下滾動條滾動。所以在這里瀏覽器無法判斷是自動執(zhí)行的滾動條滾動還是用戶手動執(zhí)行的滾動,直到onclick方法中的setInterval執(zhí)行完畢也不會進(jìn)入onscroll?方法。改用window.onmousewheel=function(){clearInterval(timer);};方法即可
2015-09-15
js 調(diào)用寫錯了