JS實(shí)現(xiàn)圖片延遲加載并淡入淡出效果的簡(jiǎn)單方法
話不多說(shuō),直接看示例
首先是圖片標(biāo)記的寫法
<img data-src="/images/image.jpg" alt="">
需要將圖片的地址放到 data-src
屬性里,而src
值不需要,直接將src
屬性去掉。
CSS代碼
所有具有data-src
屬性的圖片,我們將其初始顯示狀態(tài)為不可見(jiàn),通過(guò)透明度來(lái)調(diào)節(jié):
img { opacity: 1; transition: opacity 0.3s; } img[data-src] { opacity: 0; }
這樣寫的作用是什么?等當(dāng)圖片加載時(shí),你就能看的效果了。
JavaScript代碼
我們最終會(huì)將 data-src
屬性去掉,換成src屬性,但這是圖片加載成功后的動(dòng)作:
[].forEach.call(document.querySelectorAll('img[data-src]'), function(img) { img.setAttribute('src', img.getAttribute('data-src')); img.onload = function() { img.removeAttribute('data-src'); }; });
相比起其它各種的圖片延遲加載技術(shù),這種方法非常的簡(jiǎn)單,它幾乎不要求其它任何條件,可以用在任何地方,使用起來(lái)非常靈活。
但是要注意的是,簡(jiǎn)單有簡(jiǎn)單的好壞,也會(huì)因?yàn)楹?jiǎn)單而不足。它不具有圖片圖片滾動(dòng)到可視窗口內(nèi)再加載的功能。最終使用哪種技術(shù),還是要看場(chǎng)景而定。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的工作和學(xué)習(xí)能有所幫助。
相關(guān)文章
Javascript實(shí)現(xiàn)的鼠標(biāo)經(jīng)過(guò)時(shí)播放聲音
今天突然想起做一個(gè)當(dāng)鼠標(biāo)經(jīng)過(guò)<a/>時(shí),會(huì)發(fā)出聲音2010-05-05iframe調(diào)用父頁(yè)面函數(shù)示例詳解
這篇文章主要介紹了iframe如何調(diào)用父頁(yè)面函數(shù),下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-07-07用js+iframe形成頁(yè)面的一種遮罩效果的具體實(shí)現(xiàn)
用js形成頁(yè)面的一種遮罩效果,選擇想要進(jìn)行遮罩的窗口,在這里想要遮罩的是一個(gè)iframe窗口,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參參考下2013-12-12微信小程序?qū)崿F(xiàn)簡(jiǎn)易計(jì)算器
這篇文章介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)易計(jì)算器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06深入淺出ES6新特性之函數(shù)默認(rèn)參數(shù)和箭頭函數(shù)
這篇文章主要介紹了深入淺出ES6新特性之函數(shù)默認(rèn)參數(shù)和箭頭函數(shù) 的相關(guān)資料,需要的朋友可以參考下2016-08-08