懶加載的核心代碼


1.判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)

 var $div= $('.b')
    function  isVisible($div) {
        var scrollTop = $(window).scrollTop()       //頁(yè)面滾動(dòng)高度
        var windowHeight = $(window).height()    //窗口高度
        var offsetTop = $div.offset().top                //$div位于頁(yè)面的高度
        if(offsetTop < scrollTop + windowHeight && offsetTop > scrollTop) {
            return true
        }
        return false
    }
懶加載.png

2.當(dāng)窗口滾動(dòng)時(shí),判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍。每次出現(xiàn)都在控制臺(tái)打印 true 。

$(window).on('scroll', function(){
        if (isVisible($div)) {
            console.log(true)
        }
    })
var $div= $('.b')
    function  isVisible($div) {
        var scrollTop = $(window).scrollTop()
        var windowHeight = $(window).height()
        var offsetTop = $div.offset().top
        if(offsetTop < scrollTop + windowHeight && offsetTop > scrollTop) {
            return true
        }
        return false
    }

3.當(dāng)窗口滾動(dòng)時(shí),判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍。在元素第一次出現(xiàn)時(shí)在控制臺(tái)打印 true,以后再次出現(xiàn)不做任何處理。用代碼實(shí)現(xiàn)

var clock   //默認(rèn)為
    $(window).on('scroll', function () {
        if (clock) {
            return
        } else if (isVisible($div)) {
            console.log(true)
            clock = true
        }
    })


var $div= $('.b')
    function  isVisible($div) {
        var scrollTop = $(window).scrollTop()
        var windowHeight = $(window).height()
        var offsetTop = $div.offset().top
        if(offsetTop < scrollTop + windowHeight && offsetTop > scrollTop) {
            return true
        }
        return false
    }

4. 圖片懶加載的原理是什么?

  1. 對(duì)于所有的 img 標(biāo)簽,把真實(shí)的地址放入自定義屬性data-img
  2. 當(dāng)滾動(dòng)頁(yè)面時(shí),檢查頁(yè)面所有的 img 標(biāo)簽,看看這個(gè)標(biāo)簽是否出現(xiàn)到我們的視野,當(dāng)出現(xiàn)在我們的視野時(shí),再去判斷它是否已經(jīng)加載過(guò),如果沒(méi)有加載過(guò),令img的src等于data-src,( $img.attr('src', $img.attr('data-src')))

懶加載代碼示范

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,143評(píng)論 1 92
  • 如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個(gè)函數(shù) isVisible實(shí)現(xiàn)...
    _Dot912閱讀 1,776評(píng)論 10 8
  • 1.如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個(gè)函數(shù) isVisible...
    GarenWang閱讀 570評(píng)論 0 2
  • 明明知道晚睡不利于身體健康,可是很多人還是會(huì)抱著手機(jī)熬夜到深夜一兩點(diǎn)鐘。明明知道很多東西自己并不是那么需要,但是一...
    流浪地球sf閱讀 798評(píng)論 5 5
  • 電視劇里拒絕異性追求的委婉托辭總是“你不是我杯茶”,昨晚感覺烏龍茶就不是我的茶。與琴姐合作泡的水仙,茶有點(diǎn)澀,感覺...
    TRaCY_Z閱讀 249評(píng)論 0 0

友情鏈接更多精彩內(nèi)容