引言

  最近突然看到了有關(guān)圖片懶加載的問題,大致意思就是初始狀態(tài)下頁面只加載瀏覽器可視區(qū)域的圖片,剩余圖片在當(dāng)瀏覽器可視區(qū)域滾動(dòng)到其位置時(shí)才開始加載。貌似現(xiàn)在許多大型網(wǎng)站都有實(shí)現(xiàn)懶加載,所以我便就此問題思考了一下。首先第一個(gè)問題是瀏覽器沒有相關(guān)的 API 方法可以檢測(cè)某個(gè)元素是否在可視區(qū)域,那么就只能我們?nèi)斯び?jì)算,所以這里就涉及到了元素長(zhǎng)寬,滾動(dòng)條位置的知識(shí)。本文涉及的到的知識(shí)有元素長(zhǎng)寬 clientWidth/offsetWidth/scrollWidth 的區(qū)別、以及 clientTop/offsetTop/scrollTop 的區(qū)別,并給了獲取元素坐標(biāo)的源代碼。

 一、 clientWidth、offsetWidth、scrollWidth 的區(qū)別

  通常大家獲取元素的長(zhǎng)寬的時(shí)候都會(huì)使用一些框架封裝好的方法,比如 jQuery.prototype.width() ,這些框架使用起來方便快捷,不過其中涉及到的知識(shí)還是非常多的,關(guān)于元素的長(zhǎng)寬,有多種的獲取方法,其代表的實(shí)際意義也是不同的。

  簡(jiǎn)單來說可以使用下列公式:

  clientWidth = width(可視區(qū)) + padding

網(wǎng)友評(píng)論