引言
最近突然看到了有關(guān)圖片懶加載的問題,大致意思就是初始狀態(tài)下頁面只加載瀏覽器可視區(qū)域的圖片,剩余圖片在當(dāng)瀏覽器可視區(qū)域滾動到其位置時才開始加載。貌似現(xiàn)在許多大型網(wǎng)站都有實(shí)現(xiàn)懶加載,所以我便就此問題思考了一下。首先第一個問題是瀏覽器沒有相關(guān)的 API 方法可以檢測某個元素是否在可視區(qū)域,那么就只能我們?nèi)斯び嬎?,所以這里就涉及到了元素長寬,滾動條位置的知識。本文涉及的到的知識有元素長寬 clientWidth/offsetWidth/scrollWidth 的區(qū)別、以及 clientTop/offsetTop/scrollTop 的區(qū)別,并給了獲取元素坐標(biāo)的源代碼。
一、 clientWidth、offsetWidth、scrollWidth 的區(qū)別
通常大家獲取元素的長寬的時候都會使用一些框架封裝好的方法,比如 jQuery.prototype.width() ,這些框架使用起來方便快捷,不過其中涉及到的知識還是非常多的,關(guān)于元素的長寬,有多種的獲取方法,其代表的實(shí)際意義也是不同的。
簡單來說可以使用下列公式:
clientWidth = width(可視區(qū)) + padding