亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么在onclick函數里加了isTop = true;就可以了?這個邏輯不太理的通,求幫助

window.onload = function(){

var obtn = document.getElementById("btn");

var clientHeight = document.documentElement.clientHeight || document.body.clientHeight; ?//獲取屏幕高度

var timer = null;

var isTop = true;

//滾動條滾動時觸發

window.onscroll = function(){

var osTop = document.documentElement.scrollTop || document.body.scrollTop;

if(osTop >= clientHeight){

obtn.style.display = 'block';

}else{

obtn.style.display = 'none';

}

if(!isTop){

clearInterval(timer);

}

isTop = false;

}

obtn.onclick = function(){

//設置定時器

clearInterval(timer);

timer = setInterval(function(){

//滾動條距離頂部的距離

var osTop = document.documentElement.scrollTop || document.body.scrollTop;

var ispeed = Math.floor(-osTop / 30);

document.documentElement.scrollTop = document.body.scrollTop = osTop + ispeed;

isTop = true;

if(osTop == 0){

clearInterval(timer);

}

},30);

}

}


正在回答

2 回答

isTop剛開始設為true,然后判斷如果isTop為false的時候,則清除定時器,接下來將isTop設為false,如果只是觸發onscroll事件,isTop執行一次變為false就清除了定時器,如果觸發的是onclick,isTop一直為true,就不會觸發判斷為false時,關閉定時器的命令

1 回復 有任何疑惑可以回復我~

其實很簡單,最開始的時候,如果沒有加true,那么滾動一次之后isTop變成false,中途就會停止

如果在定時器中加入一個isTop 為ture的話,他就會在執行定時器的時候始終為false,從而不停止滾動,

手動的拖動就直接激活window.onscroll ,跳過定時器,所以就出現這種狀況

2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
回到頂部效果
  • 參與學習       44197    人
  • 解答問題       214    個

回到頂部網站不可缺少的一部分,用JS實現炫酷拉風的回到頂部效果

進入課程

為什么在onclick函數里加了isTop = true;就可以了?這個邏輯不太理的通,求幫助

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號