解析預(yù)加載顯示圖片藝術(shù)
一般情況下網(wǎng)頁中的圖片都是隨文檔流依次加載的,什么時候用到則什么時候加載,但是有些時候這樣的加載方式往往會影響用戶體驗(yàn),比如鼠標(biāo)hover變換背景圖片的時候,只有鼠標(biāo)移入才會對變換的圖片進(jìn)行加載,這樣就可能會出現(xiàn)片刻的加載空白現(xiàn)象;又比如圖片顯示后隱藏再顯示網(wǎng)站內(nèi)容等也是同樣的道理。
為了在必要的時候增加用戶體驗(yàn),提高網(wǎng)頁的交互逼格,這里不得不介紹下圖片預(yù)加載的藝術(shù)啦。
那么什么是圖片預(yù)加載呢?
道理很簡單啦,雖然某些圖片一時半會我用不到,但是為了避免使用時出現(xiàn)的措手不及的現(xiàn)象,我還是乖乖把它們先準(zhǔn)備好,在某些時候悄悄的把它們加載進(jìn)來,以防一時之需。
ok,那么怎么才能實(shí)現(xiàn)這樣的功能呢?
其實(shí)很簡單啦,
這里呢就介紹一個jquery庫的preLoadImages()函數(shù),使用這個函數(shù)呢就可以輕松實(shí)現(xiàn)圖片預(yù)加載了,下面來一睹為快吧,代碼如下:
$(function(){ var cache=[]; //編寫一個預(yù)加載圖片的jQuery函數(shù) $.preLoadImages = function(){ //獲取函數(shù)體的參數(shù)個數(shù) var args_len = arguments.length; //反向循環(huán)參數(shù)個數(shù),創(chuàng)建img元素 for(var i = args_len ; i--;) { var cacheImage = document.createElement(‘img'); //指定img元素的src屬性為數(shù)組元素的值 cacheImge.src = arguments[i]; //將HTML元素加入到數(shù)組中 cache.push(cacheImage); } } });
ok,注釋都寫的十分清楚了吧,還是沒看懂?好吧那么我們先不管代碼了,其實(shí)只要通過下面一步就可以完成函數(shù)的調(diào)用,如下:
//預(yù)加載圖片 $.preLoadImages('images/sample1.jpg','images/sample2.jpg','images/sample3.jpg');
其中的
'images/sample1.jpg','images/sample2.jpg','images/sample3.jpg'
就是圖片的路徑,預(yù)加載多張圖片就用逗號分隔啦,
這樣在網(wǎng)頁上的任何位置引用圖片時,將從緩存中獲取所需的圖片,從而提升用戶的體驗(yàn),使網(wǎng)站獲得更好的流暢性哦。
那么還沒完,有人可能會問萬一圖片路徑失效加載出錯了咋辦?
呵呵,再教你一招,出錯就出錯了唄,我們有plan B,針對出錯的圖片顯示另一張我們事先準(zhǔn)備好的圖片,用這張圖片來替換所有無法顯示的圖片,那么怎樣才能做到呢,方法也十分簡單,代碼如下:
$(function(){ $("img").error(function(){ $(this).prop("src","images/planB.jpg"); }); });
搞定,這下我們做的萬無一失了,
這里主要介紹下error()事件,它的定義和用法為:
當(dāng)元素遇到錯誤(沒有正確載入)時,發(fā)生 error 事件。
error() 方法觸發(fā) error 事件,或規(guī)定當(dāng)發(fā)生 error 事件時運(yùn)行的函數(shù)。
很好理解吧,至此我們的圖片預(yù)加載的方法就介紹完了。
本文部分代碼及寫作思路參考于《超實(shí)用的JQuery代碼段》一書,歡迎大家積極嘗試、評論及指正。
以上就是本文的全部內(nèi)容,希望對大家有所幫助,同時也希望多多支持腳本之家!
- JavaScript資源預(yù)加載組件和滑屏組件的使用推薦
- 理解Javascript圖片預(yù)加載
- jquery實(shí)現(xiàn)圖片預(yù)加載
- jquery預(yù)加載圖片的方法
- jQuery簡單實(shí)現(xiàn)圖片預(yù)加載
- jQuery實(shí)現(xiàn)預(yù)加載圖片的方法
- Jquery實(shí)現(xiàn)圖片預(yù)加載與延時加載的方法
- js中Image對象以及對其預(yù)加載處理示例
- 利用CSS、JavaScript及Ajax實(shí)現(xiàn)高效的圖片預(yù)加載
- javascript預(yù)加載圖片、css、js的方法示例介紹
- JS實(shí)現(xiàn)圖片預(yù)加載無需等待
- jQuery預(yù)加載圖片常用方法
- js預(yù)加載圖片方法匯總
相關(guān)文章
jQuery+html5+css3實(shí)現(xiàn)圓角無刷新表單帶輸入驗(yàn)證功能代碼
這篇文章主要介紹了jQuery+html5+css3實(shí)現(xiàn)圓角無刷新表單帶輸入驗(yàn)證功能代碼,加入了html5與css3技術(shù),使得整個表單效果更加唯美華麗,需要的朋友可以參考下2015-08-08jquery popupDialog 使用 加載jsp頁面的方法
下面小編就為大家?guī)硪黄猨query popupDialog 使用 加載jsp頁面的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10jQuery基于當(dāng)前元素進(jìn)行下一步的遍歷
通過jQuery方法選中了元素,如何基于這些已經(jīng)選中的元素進(jìn)行下一步的遍歷呢?下面有個不錯的示例,大家可以參考下2014-05-05幾行代碼輕松搞定jquery實(shí)現(xiàn)flash8類似的連接效果
幾行代碼輕松搞定jquery實(shí)現(xiàn)flash8類似的連接效果...2007-05-05jQuery+CSS3實(shí)現(xiàn)3D立方體旋轉(zhuǎn)效果
這篇文章主要介紹了jQuery結(jié)合CSS3來制作3D立方體旋轉(zhuǎn)效果,切換圖片時呈現(xiàn)3D立體圖片畫廊特效,需要的朋友可以參考下2015-11-11jQuery+css實(shí)現(xiàn)的切換圖片功能代碼
這篇文章主要介紹了jQuery+css實(shí)現(xiàn)的切換圖片功能代碼,涉及jQuery響應(yīng)鼠標(biāo)事件動態(tài)變換頁面元素樣式的相關(guān)技巧,需要的朋友可以參考下2016-01-01