js實(shí)現(xiàn)圖片淡入淡出效果
本文實(shí)例為大家分享了js實(shí)現(xiàn)圖片淡入淡出的具體代碼,供大家參考,具體內(nèi)容如下
分析過(guò)程:
1.給最大父元素里添加多張圖片,讓第一張圖片的透明度為1 opacity: 1
其余圖片的透明度為0;
給圖片下面設(shè)置一排小點(diǎn)
2.獲取每張圖片,動(dòng)態(tài)設(shè)置不同層級(jí),層級(jí)大小從4到0依次設(shè)置;
Setz_index:function(){
for(var i=0;i<this.Photo.length;i++ ){
index=i;
this.Photo[i].style.zIndex =this.Photo.length-i-1;
}
},
3.給圖片設(shè)置兩種出現(xiàn)的方式,順時(shí)針出現(xiàn)或者逆時(shí)針出現(xiàn);圖片變動(dòng)的同時(shí),對(duì)應(yīng)的小點(diǎn)也進(jìn)行變動(dòng)。出現(xiàn)的圖片層級(jí)最高,透明度為一,其余圖片透明度為0,并且對(duì)應(yīng)的小點(diǎn)顏色變?yōu)榉凵?/p>
Animatezindex:function(math,count){
for(var i=0;i<count;i++){
for(var k=0;k<this.Photo.length;k++) {
//console.log(1);
var index=parseInt (this.Photo[k].style.zIndex ); //43210 04321 10432
if(math=="n"){
index++; //小點(diǎn)從左向右變化顏色
if(index ==this.Photo.length){
index=0;
this.Photo[k].style.opacity =0;
this.Crclelist [k].style.background ="#fff";
}
if(index==this.Photo.length-1){
this.Photo [k].style.opacity= 1;
this.Crclelist [k].style.background ="pink";
this.Savecolor= this.Crclelist [k];
}
}
else{
index--; //小點(diǎn)從右向左變化顏色
if(index==-1){
index=this.Photo.length-1;
}
if(index==this.Photo.length-1){
this.Photo [k].style.opacity= 1;
this.Crclelist [k].style.background ="pink";
this.Savecolor= this.Crclelist [k];
}
if(index==this.Photo.length-2){
this.Photo[k].style.opacity =0;
this.Crclelist [k].style.background ="#fff";
}
}
this.Photo[k].style.zIndex =index;
}
}
},
4.設(shè)置默認(rèn)值,讓第一個(gè)小點(diǎn)的顏色為粉色,當(dāng)鼠標(biāo)滑進(jìn)最大父元素時(shí),圖片停止轉(zhuǎn)動(dòng);當(dāng)鼠標(biāo)滑進(jìn)小圓點(diǎn)時(shí),分為兩種情況,從當(dāng)前的圓點(diǎn)的左邊進(jìn)入和右邊進(jìn)入。
Moren_set:function(){
var that=this;
that.Crclelist [0].style.background ="pink";
that.Savecolor =that.Crclelist[0];
that.Bigblock.onmouseenter=function(){
// console.log(1);
window.cancelAnimationFrame ( glider.Timeset);
};
that.Bigblock.onmouseleave=function(){
glider.Timelines();
}
//點(diǎn)的事件,跟隨圖片變化
for(var i=0;i<that.Crclelist.length;i++){
that.Crclelist[i].index=i;
that.Crclelist[i].onmouseenter =function(){
var oldindex=that.Savecolor.index;
var newindex=this.index; //鼠標(biāo)滑進(jìn)的圓點(diǎn)的索引 this指的是當(dāng)前的圓點(diǎn)的滑動(dòng)事件
// console.log(newindex);
if(newindex -oldindex >0) { //從當(dāng)前圓點(diǎn)的右邊進(jìn)
var ri=newindex -oldindex;
// console.log(ri);
var le= that.Crclelist.length-ri;
// console.log(le);
if(ri<=le){
console.log("向右",ri);
that.Animatezindex("n",ri);
}
if(ri>le){
console.log("向左",le);
that.Animatezindex("s",le);
}
}
else if(newindex -oldindex<0){
var ri1=Math.abs(newindex-oldindex) ; //取絕對(duì)值
var le1=that.Crclelist.length-ri1;
if(ri1<=le1){
console.log("向左", ri1);
that.Animatezindex("s",ri1);
}
if(ri1>le1){
console.log("向右", le1);
that.Animatezindex("n",le1);
}
}
}
}
}
5.設(shè)置轉(zhuǎn)動(dòng)事件,根據(jù)時(shí)間來(lái)改變控制圖片的轉(zhuǎn)動(dòng)。
Timelines:function(){
var nowtime=new Date().getTime ();
if((nowtime -glider.Oldtime) >=glider.TimeDely ){
glider.Oldtime =nowtime;
glider.Animatezindex ("n",1); //向 右變化
}
//可以通過(guò)setTimeout和setInterval方法來(lái)在腳本中實(shí)現(xiàn)動(dòng)畫(huà),
// 但是這樣效果可能不夠流暢,且會(huì)占用額外的資源。
//requestAnimationFrame方法用于通知瀏覽器重采樣動(dòng)畫(huà),循環(huán)播放。
/*cancelAnimationFrame
cancelAnimationFrame 方法用于取消先前安排的一個(gè)動(dòng)畫(huà)幀更新的請(qǐng)求。*/
glider.Timeset =window.requestAnimationFrame(glider.Timelines);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序頁(yè)面間傳值與頁(yè)面取值操作實(shí)例分析
這篇文章主要介紹了微信小程序頁(yè)面間傳值與頁(yè)面取值操作,結(jié)合實(shí)例形式分析了微信小程序頁(yè)面間傳值及頁(yè)面取值操作相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-04-04
javascript實(shí)現(xiàn)用戶(hù)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)用戶(hù)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
基于Javascript實(shí)現(xiàn)文件實(shí)時(shí)加載進(jìn)度的方法
不知道大家有沒(méi)有發(fā)現(xiàn)在現(xiàn)在的移動(dòng)頁(yè)面上,有很多情況需要加載大量的資源。但是移動(dòng)端的訪問(wèn)速度和pc還是有很大的差距,有些時(shí)候需要一些取巧的方式來(lái)提升用戶(hù)體驗(yàn),而實(shí)時(shí)顯示加載進(jìn)度就是其中一種。這篇文章就給大家分享了Javascript實(shí)現(xiàn)文件實(shí)時(shí)加載進(jìn)度的方法。2016-10-10
JavaScript Array對(duì)象擴(kuò)展indexOf()方法
JavaScript中Array對(duì)象沒(méi)有indexOf()方法,可通過(guò)下面的代碼擴(kuò)展,需要的朋友可以參考下2014-05-05
IE下通過(guò)a實(shí)現(xiàn)location.href 獲取referer的值
IE下采用window.location.href方式跳轉(zhuǎn)的話(huà),referer值為空在標(biāo)簽a里面的跳轉(zhuǎn)的話(huà)referer就不會(huì)空,下面是具體的實(shí)現(xiàn)代碼2014-09-09

