九九色综合_性69交片免费看_亚洲一区二区三区久久精品_精品一久久_欧美一级黄视频_污免费网站

懶加載封裝實(shí)現(xiàn)

2018-5-24    周周

1.什么是懶加載?
         當(dāng)訪問一個(gè)頁(yè)面的時(shí)候,先把img元素背景圖片路徑替換成一張?zhí)娲鷪D片的路徑(這樣就只需請(qǐng)求一次,占位圖),將圖片的真實(shí)路徑存儲(chǔ)在img自定義屬性中,只有當(dāng)圖片出現(xiàn)在瀏覽器的可視區(qū)域內(nèi)時(shí),才設(shè)置圖片正真的路徑,讓圖片顯示出來。這就是圖片懶加載。
2.為什么要用懶加載?
       很多頁(yè)面,內(nèi)容很豐富,頁(yè)面很長(zhǎng),圖片較多。比如說各種商城頁(yè)面。這些頁(yè)面圖片數(shù)量多,而且比較大,少說百來K,多則上兆。要是頁(yè)面載入就一次性加載完畢,提高首屏加載速度,可以減輕服務(wù)器壓力,節(jié)約流量,用戶體驗(yàn)好。
3.懶加載實(shí)現(xiàn)封裝?

    lazyLoad由四個(gè)函數(shù)組成,init(初始化函數(shù)),checkShow(判斷圖片是否加載),shouldShow(將要展示的圖片),showImg(展示圖片)。

(1)初始化函數(shù)(init)  由于滾動(dòng)事件太消耗性能,所以用定時(shí)器替換,不是滾動(dòng)就觸發(fā),而是滾動(dòng)后200毫秒后觸發(fā)。

                var timer;
                function init(){
                    $(window).on("scroll",function(){
                        if(timer){
                            clearTimeout(timer);
                        }
                        timer = setTimeout(function(){
                            checkShow();  //
                        },200);
                    });
                }

(2)判斷”圖片是否加載“(checkshow)函數(shù),如果圖片有isload屬性,就說明圖片已經(jīng)加載過了,直接return。如果圖片沒有isload屬性,進(jìn)入將要展示圖片shouldshow函數(shù)

                function checkShow(){
                    $lazyLoad.each(function(){
                        $cur = $(this);
                        if($cur.attr('isLoaded')){
                            return;
                        }
                        if(shouldShow($cur)){
                            showImg($cur);
                        }
                    });
                }

(3)將要展示圖片shouldshow函數(shù),獲取屏幕可視寬度,滾動(dòng)高度,要展示的元素到文檔的高度,如果元素到文檔的高度小于屏幕的可視高度加上滾動(dòng)高度,說明元素已在可視區(qū)內(nèi),返回true,否則返回false。

               function shouldShow ($node){
                    var scrollH = $(window).scrollTop(),
                        windowH = $(window).height(),
                        top = $node.offset().top;
                    if(top < windowH + scrollH){
                        return true;
                    } else {
                        return false;
                    }

                }

(4)“展示圖片”函數(shù),將元素的src屬性替換為自定義屬性data-src(真正圖片的地址)。

                function showImg ($node){
                    $node.find("img").attr("src",$node.data("src"));
                    $node.attr("isLoaded",true);
                }

(5)函數(shù)返回一個(gè)對(duì)象

              return {
                        init : init
           }

      這樣就實(shí)現(xiàn)懶加載封裝了!

日歷

鏈接

個(gè)人資料

存檔

主站蜘蛛池模板: 55夜色66夜色欧洲精品 | 亚洲最大网址 | 精品亚洲一区二区 | 99久久久久成人国产免费 | 天天爱爱网 | 国产一区二区三区四区在线观看 | 不卡的毛片 | 亚洲成人网在线观看 | 亚洲日日 | 午夜男人的天堂 | 亚洲视频欧美视频 | 成人在线免费电影 | 99精品久久久久久 | 久久国产欧美日韩精品 | 国产在线视欧美亚综合 | 欧美激情视频在线观看 | 国产又色又爽的视频免费 | 一级a毛片 | 日韩黄a| 久久综合精品视频 | 久久性色 | 毛片免费视频观看 | 日韩中文在线 | 欧美成人a级在线视频 | 亚洲精品老司机在线观看 | 久久九九色 | 精品一区二区三区视频在线观看 | 嘿咻嘿咻边做免费视频观看 | 婷婷免费视频 | 色综合小说久久综合图片 | 91大神大战酒店翘臀美女 | 免费在线一区二区三区 | 亚洲欧美一区二区三区国产精品 | 久久精品无码一区二区三区 | 亚洲欧美综合 | 日本中文视频 | 欧美手机在线视频 | www.成人在线视频 | 免费人成在线观看网站 | 免费国产在线视频 | 中文字幕在线观看 |