JS圖片懶加載

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>圖片懶加載</title>

    </head>
    <style type="text/css">
        .imglist {
            width: 300px;
            display: flex;
            flex-wrap: wrap;
            text-align: center;

        }

        .lazy {
            width: 280px;
            height: 280px;
        }
    </style>
    <body>
        <div class="imglist">
            <img class="lazy" src="img/loading.gif" data-src="img/01.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/02.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/03.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/04.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/05.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/06.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/07.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/08.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/09.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/10.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/11.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/12.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/13.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/14.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/15.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/16.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/17.png" alt="pic">
            <img class="lazy" src="img/loading.gif" data-src="img/18.png" alt="pic">

        </div>


    </body>
    <script type="text/javascript">
        // onload是等所有的資源文件加載完畢以后再綁定事件
        window.onload = function() {
            // 獲取圖片列表烛恤,即img標(biāo)簽列表
            var imgs = document.querySelectorAll('img');

            // 獲取到瀏覽器頂部的距離
            function getTop(e) {
                return e.offsetTop;
            }

            // 懶加載實(shí)現(xiàn)
            function lazyload(imgs) {
                // 可視區(qū)域高度
                var h = window.innerHeight;
                //滾動區(qū)域高度
                var s = document.documentElement.scrollTop || document.body.scrollTop;
                for (var i = 0; i < imgs.length; i++) {
                    //圖片距離頂部的距離大于可視區(qū)域和滾動區(qū)域之和時懶加載
                    if ((h + s) > getTop(imgs[i])) {
                        // 真實(shí)情況是頁面開始有2秒空白巢钓,所以使用setTimeout定時2s
                        (function(i) {
                            setTimeout(function() {
                                // 不加立即執(zhí)行函數(shù)i會等于9
                                // 隱形加載圖片或其他資源,
                                //創(chuàng)建一個臨時圖片掩驱,這個圖片在內(nèi)存中不會到頁面上去。實(shí)現(xiàn)隱形加載
                                var temp = new Image();
                                temp.src = imgs[i].getAttribute('data-src'); //只會請求一次
                                // onload判斷圖片加載完畢泻仙,真是圖片加載完畢,再賦值給dom節(jié)點(diǎn)
                                temp.onload = function() {
                                    // 獲取自定義屬性data-src,用真圖片替換假圖片
                                    imgs[i].src = imgs[i].getAttribute('data-src')
                                }
                            }, 2000)
                        })(i)
                    }
                }
            }
            lazyload(imgs);

            // 滾屏函數(shù)
            window.onscroll = function() {
                lazyload(imgs);
            }
        }
    </script>
</html>

參考:'https://blog.csdn.net/w1418899532/article/details/90515969'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末箩退,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子佳谦,更是在濱河造成了極大的恐慌戴涝,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钻蔑,死亡現(xiàn)場離奇詭異啥刻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)咪笑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門可帽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窗怒,你說我怎么就攤上這事映跟。” “怎么了扬虚?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵努隙,是天一觀的道長。 經(jīng)常有香客問我辜昵,道長荸镊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任堪置,我火速辦了婚禮躬存,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舀锨。我一直安慰自己优构,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布雁竞。 她就那樣靜靜地躺著钦椭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碑诉。 梳的紋絲不亂的頭發(fā)上彪腔,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機(jī)與錄音进栽,去河邊找鬼德挣。 笑死,一個胖子當(dāng)著我的面吹牛快毛,可吹牛的內(nèi)容都是我干的格嗅。 我是一名探鬼主播番挺,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屯掖!你這毒婦竟也來了玄柏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤贴铜,失蹤者是張志新(化名)和其女友劉穎粪摘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绍坝,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡徘意,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了轩褐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椎咧。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖把介,靈堂內(nèi)的尸體忽然破棺而出勤讽,到底是詐尸還是另有隱情,我是刑警寧澤劳澄,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蜈七,受9級特大地震影響秒拔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜飒硅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一砂缩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧三娩,春花似錦庵芭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至会前,卻和暖如春好乐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瓦宜。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工蔚万, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人临庇。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓反璃,卻偏偏與公主長得像昵慌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淮蜈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容