在一次項(xiàng)目中需要做一個(gè)電子書,然后再網(wǎng)上找了一個(gè)電子書的模板,但是我所做的項(xiàng)目時(shí)電子版的圖刊,需要加載有很多圖片,當(dāng)完成后上傳了100多張圖片,這個(gè)時(shí)候發(fā)現(xiàn)加載非常的慢 ,效果要很久才出來(lái),這是我就想到了我以前一個(gè)項(xiàng)目當(dāng)時(shí)也是因?yàn)榫W(wǎng)站首頁(yè)圖片太大太多,js插件也多導(dǎo)致首頁(yè)打開速度奇慢無(wú)比 ,后來(lái)用圖片懶加載稍微優(yōu)化了一下發(fā)現(xiàn)效果還不錯(cuò),當(dāng)時(shí)是打算用jquery.lazyload.js 去做的,試了半天都發(fā)現(xiàn)沒(méi)有效果于是就自己寫了一個(gè)簡(jiǎn)單的圖片的懶加載。
思路跟網(wǎng)上大家說(shuō)的差不多,就是在img標(biāo)簽上放一張臨時(shí)圖片 然后定義一個(gè)data-img 的屬性,然后自己更具網(wǎng)站的實(shí)際需求寫 替換圖片的事件, 我這里是電子書 做的點(diǎn)擊事件。


$('#next_page_button').click(function() {
var dong_num= $(this).data('num');
var all_num = dong_num+5;
$(this).data('num',all_num);
$('.lazy').each(function() {
var $img = $(this);
var img_num = $img.data('num');
if (img_num <= all_num) {
var dong_num = $img.data('img');
$img.attr('src',dong_num);
}
});
});
這里是想法是第一次加載只展示5張 然后沒(méi)觸發(fā)一次事件就去判斷當(dāng)前的data-num值, 提前加載5張,把num的值小于當(dāng)前數(shù)值num的img標(biāo)簽內(nèi)的默認(rèn)圖片都替換為需要展示的圖片。然后把點(diǎn)擊事件上的num值改成當(dāng)前判斷的值,做好下次事件的數(shù)值判斷。這是一個(gè)簡(jiǎn)單例子,希望能給你們一些解決問(wèn)題靈感。
當(dāng)然如果網(wǎng)站的布局有規(guī)律也可以嘗試使用jquery.lazyload.js
分享一個(gè)lazyload.js詳解
https://www.cnblogs.com/yzg1/p/5051554.html
lazyload.js下載地址是github上的
https://codeload.github.com/tuupola/lazyload/legacy.zip/1.9.3
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://www.oulysa.com/news/5573.html