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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我不能在控制臺中循環滾動瀏覽器窗口?

為什么我不能在控制臺中循環滾動瀏覽器窗口?

郎朗坤 2021-06-02 09:04:13
我想在控制臺中循環向下滾動瀏覽器窗口。我希望它每次向下滾動 (x)px 時我都會停止,做一些事情,然后再次滾動 (x)px 然后停止等等,直到頁面結束(它很長,我想解析信息從中)。但是當我開始時,我偶然發現了一個問題,即循環結束后滾動功能只執行一次。let i = 0;scrollDownTillEnd = () => {  for(i; i<100; i++) {    window.scrollBy(0, 1000);  };scrollDownTillEnd();(這是一個簡化的例子,但思路應該很清楚)我將代碼放在控制臺中,在我想要滾動的頁面上,然后在循環結束時獲取 i 的值,并且只向下滾動一次。請解釋一下,為什么這段代碼表現得像這樣以及如何使它工作,正如我之前提到的(在每個循環中它都會滾動一點)。謝謝!
查看完整描述

2 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

讓我幫助解決這里發生的一些問題。


1)您正在進行無限循環,因為i即使您每次都在增加它,您也沒有檢查它是否小于 100。您需要檢查一下,i < 100以便循環最終結束。在您的循環中,0 將始終小于 100,因此循環永遠不會結束。


2)您的示例中存在語法錯誤,因為scrollDownTillEnd在調用函數本身之前,您實際上并沒有用花括號關閉函數。


3)最后,作為一種良好的做法,您需要i每次將變量重置為 0,以便我們可以一遍又一遍地運行這段代碼。您在示例中設置它的方式,因為i在第一次運行結束時將等于 100,在此之后循環將永遠不會再次運行,直到您i再次重置為 0。執行此操作的最簡單方法是i每次執行此循環時將值初始化為 0。


嘗試這樣的事情:


scrollDownTillEnd = () => {

    for(let i = 0; i < 100; i++) {

        window.scrollBy(0, 1000);

    };

};

scrollDownTillEnd();


查看完整回答
反對 回復 2021-06-03
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

您可以使用 setInterval() 因為 for 循環只會執行一次


    function scrollDownTillEnd(countryDropdownList)

    {

      let scrollingInterval = setInterval(function(){

      window.scrollBy(0,1000)

      // write your condition

      if (window.scrollHeight > 10000)

      {

      clearInterval(scrollingInterval)

      }

    },100)

    }

scrollDownTillEnd();


查看完整回答
反對 回復 2021-06-03
  • 2 回答
  • 0 關注
  • 275 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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