1.前言
在之前的工作中,越大過這樣的場景,在做banner圖的時候,使用的定位,實現(xiàn)圖片的淡入淡出和放大效果,
<!--html-->
<ul>
<li>
<a href="#"><img src" />
在之前的工作中,越大過這樣的場景,在做banner圖的時候,使用的定位,實現(xiàn)圖片的淡入淡出和放大效果,
<!--html-->
<ul>
<li>
<a href="#"><img src="img/jd/banner061901.jpg"></a>
</li>
<li>
<a href="#"><img src="img/jd/banner061902.jpg"></a>
</li>
<li>
<a href="#"><img src="img/jd/banner061903.jpg"></a>
</li>
</ul>
但是在本地的看不出什么問題,但是在服務(wù)器上就能看出問題,其中l(wèi)i使用了定位,這是ul講不繼承l(wèi)i的高度,再加上頁面是自適應(yīng),又不能給ul添加高度,所以要動態(tài)的計算其尺寸。
var time_img; // 定時器
var isLoaded = true; // 控制變量
// 判斷圖片加載狀況,加載完成后回調(diào)
isImgLoad(function(){
$('.swipe ul').height($('.swipe img').css('height'));
});
$(window).resize(function(){
$('.swipe ul').height($('.swipe img').css('height'));
});
// 封裝函數(shù)
function isImgLoad(callback){
$('.banner img').each(function(){
if(this.height === 0){
isLoaded = false;
return false;
}
});
if(isLoaded){
// isLoaded為true,沒有發(fā)現(xiàn)為height=0的。加載完畢
clearTimeout(time_img); // 清除定時器
// 回調(diào)函數(shù)
callback();
}else{
//isLoaded為為false,因為找到了沒有加載完成的圖,將調(diào)用定時器遞歸
isLoaded = true;
time_img = setTimeout(function(){
isImgLoad(callback); // 遞歸掃描
},300); //設(shè)置掃描時間
}
}
ready是jquery封裝的方法,只是表示頁面的結(jié)構(gòu)渲染完成,并不表示頁面的資源被加載完成,而onload方法時原生的方法,指dom的生成和資源完全加載(比如圖片等)出來后才執(zhí)行
// HTML
<img id='bannerItem' src="http://www.whtlnet.com/uploadfile/ImgFile/2013-11/Img2013111300220767486.jpg">
//js
$(document).ready(function(){
//jquery
$('.bannerItem').load(function(){
// 加載完成
$('.swipe ul').height($('.swipe img').css('height'));
});
//原生 onload
var img = document.getElementById('bannerItem')
img.onload =img.onreadystatechange = function(){
if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){
// 加載完成
$('.swipe ul').height($('.swipe img').css('height'));
}
};
})
new Promise((resolve, reject)=>{
let bannerItem= new Image()
bannerItem.src = 'http://www.whtlnet.com/uploadfile/ImgFile/2013-11/Img2013111300220767486.jpg'
bannerItem.onload = function(){
resolve(bannerItem)
}
}).then((bannerItem)=>{
//code
$('.swipe ul').height($('.swipe img').css('height'));
})
promise對象的all()方法
const imgarr = [
'http://www.whtlnet.com/uploadfile/ImgFile/2013-11/Img2013111300220767486.jpg',
'http://www.whtlnet.com/uploadfile/ImgFile/2013-04/Img2013041116301259095.jpg',
'http://www.whtlnet.com/uploadfile/ImgFile/2013-04/Img2013041116293911935.jpg'
];
//創(chuàng)建每個圖片的promise對象
const promiseImgAllArr = [], imgAllarr = [];
for(let i = 0 ; i < imgarr.length ; i++){
promiseImgAllArr[i] = new Promise((resolve, reject)=>{
imgAllarr[i] = new Image()
imgAllarr[i].src = mulitImg[i]
imgAllarr[i].onload = function(){
//第i張加載完成
resolve(imgAllarr[i])
}
})
}
//將圖片的promise對象的集合傳給promise的all方法作為參數(shù)
Promise.all(promiseImgAllArr).then((img)=>{
//全部加載完成
$('.swipe ul').height($('.swipe img').css('height'));
})
公司名稱:武漢互贏網(wǎng)絡(luò)科技有限公司
公司地址:武漢市武昌區(qū)靜安路6號創(chuàng)意產(chǎn)業(yè)園408室
客 服QQ:562257562 848467306
咨詢電話:027-89992189
業(yè)務(wù)熱線:15972109576
公司網(wǎng)站:www.whtlnet.com
武漢做網(wǎng)站 武漢網(wǎng)站建設(shè) 武漢網(wǎng)站制作 武漢網(wǎng)絡(luò)公司 武漢網(wǎng)站開發(fā) 武漢建網(wǎng)站
最新動態(tài)
生產(chǎn)小工單能給 生產(chǎn)管理帶來哪些好處?
武漢網(wǎng)站制作公司解鎖軟件開發(fā)能做什么?
營銷型網(wǎng)站與普通網(wǎng)站有什么區(qū)別?——武漢網(wǎng)站建設(shè)
常見問題百寶箱
A2014,有位學(xué)妹不顧家人反對,在上海這個國際化大都市謀了一個公眾號助理的職位。斗志昂揚地奮斗了 3 年,我眼看著她的內(nèi)容駕馭能力突飛猛進(jìn),內(nèi)容質(zhì)量從三流到一流,職位
A文章主要分析了不同的視覺設(shè)計元素是如何影響網(wǎng)站用戶體驗,希望通過文章的解讀能夠?qū)δ愕漠a(chǎn)品設(shè)計帶來些啟發(fā)。 也許是因為我在視覺設(shè)計上沒有太多經(jīng)驗,我發(fā)現(xiàn)
A雙贏系統(tǒng)建站系統(tǒng),三網(wǎng)同步,建站推廣一步到位雙贏系統(tǒng)建站系統(tǒng),三網(wǎng)同步,建站推廣一步到位雙贏系統(tǒng)建站系統(tǒng),三網(wǎng)同步,建站推廣一步到位雙贏系統(tǒng)建站系統(tǒng),三網(wǎng)同步,建站推
027-89992189
掃一掃關(guān)注微信
Copyright 2013-2020 All Rights Reserved 武漢互贏網(wǎng)絡(luò)科技股份有限公司 鄂ICP備19027860號