JavaScript判斷元素底部到達瀏覽器客戶區的低端

螞蟻小編發表於2017-04-14

分享一段程式碼例項,它能夠實現判斷元素的底部是否到達瀏覽器客戶區的底部。

這也是看到有朋友在提問,收集了相關的答案進行分享一下。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
* {
  margin:0px;
  padding:0px;
}
#antzone {
  width:50px;
  height:2000px;
  background:green;
  margin:50px auto;
}
</style> 
<script type="text/javascript"> 
window.onload = function () {
  var odiv = document.getElementById("antzone");
  var H = odiv.offsetHeight + odiv.offsetTop;
  var scrollH = H-document.documentElement.clientHeight;
  window.onscroll = function () {
    if (document.documentElement.scrollTop + document.body.scrollTop >= scrollH) {
      alert("元素的的邊緣已經到達客戶區底邊緣");
    }
  }
}
</script> 
</head>   
<body> 
<div id="antzone"></div>
<div id="show"></div>
</body> 
</html>

上面的程式碼實現了我們的要求,下面詳細介紹一下它的實現過程。

一.程式碼註釋:

(1).window.onload = function () {},當文件內容完全載入完畢再去執行函式中的程式碼。

(2).var odiv = document.getElementById("antzone"),獲取id屬性值為antzone的元素物件。

(3).var H = odiv.offsetHeight + odiv.offsetTop,獲取元素的高度和元素距離根元素的距離和。

(4).var scrollH = H-document.documentElement.clientHeight,獲取預設元素底部被遮擋的尺寸,如果頁面上滾這個尺寸,那麼元素的低邊緣就位於瀏覽器客戶區的低端。

(5).window.onscroll = function () {},註冊onscroll事件處理函式。

(6).document.documentElement.scrollTop + document.body.scrollTop >= scrollH,判斷向上滾動的尺寸是否大於等於scrollH。

二.相關閱讀:

(1).offsetHeight參閱js offsetHeight一章節。

(2).offsetTop參閱js offsetTop一章節。

(3).clientHeight參閱clientHeight一章節。

(4).onscroll參閱javascript scroll事件一章節。

相關文章