在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js中判斷一個元素在可視區(qū)域停留2s以上才執(zhí)行相應函數(shù),否則不執(zhí)行 怎么辦呢

js中判斷一個元素在可視區(qū)域停留2s以上才執(zhí)行相應函數(shù),否則不執(zhí)行 怎么辦呢

滾動條事件中 元素在可視區(qū)域停留2s以上才會執(zhí)行相應函數(shù) 否則不執(zhí)行

回答
編輯回答
尋仙

學防抖

//  如何判斷元素是否在可視區(qū)域
  // 方法一 
  function isInSight2(ele) {
      var visibleArea = document.documentElement.clientHeight;//屏幕可視區(qū)域的高度
      var eleTop = ele.offsetTop;//元素相對于文檔頂部的距離
      var scrollTop = document.documentElement.scrollTop;// 獲取瀏覽器窗口頂部距離文檔頂部的距離(滾動條滾動的距離)
      return eleTop - scrollTop < visibleArea ? true : false
  }
  // 方法二 https://segmentfault.com/a/1190000010744417
  function isInSight(el) {
      const bound = el.getBoundingClientRect(); // 圖片到頂部可視區(qū)域的高度
      const clientHeight = window.innerHeight;// 可視區(qū)域的高度
      //如果只考慮向下滾動加載
      //const clientWidth=window.innerWeight;
      return bound.top <= clientHeight + 100;
  }
2018年2月8日 11:16
編輯回答
熊出沒

估計你需要一個標志量和一個定時器2秒,結合上面的元素在可視區(qū)判斷,大致邏輯是:

  1. 元素進入可視,觸發(fā)動作,設置標志量,啟動定時器(注意定時器需要用變量存儲起來,方便后面刪除)
  2. 元素退出可視區(qū),觸發(fā)動作,檢測啟動定時器變量是否為null,如果非則刪除定時器,設置變量為null,如果為null則不動作(可能前面已經執(zhí)行了2秒后動作),設置標志量狀態(tài)
  3. 定時器2秒后觸發(fā),檢測設置標志量,設置定時器變量為null,進行相應處理,在結束時刪除定時器
2018年3月30日 18:12