JS實現(xiàn)縱向輪播圖(初級版)
更新時間:2020年01月18日 11:22:29 作者:SSSkyCong
這篇文章主要為大家詳細介紹了JS實現(xiàn)縱向輪播圖的初級版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了JS實現(xiàn)縱向輪播圖的具體代碼,供大家參考,具體內(nèi)容如下
描述:
縱向buton或者底部數(shù)字控制輪播,可以實現(xiàn)自動輪播(注釋了,使用的話將其注釋消掉),核心知識是數(shù)據(jù)驅動圖像的透明度達到效果。
效果:
代碼:
js文件:
/* * 工廠模式 * */ var Method=(function () { return { loadImage:function (arr,callback) { var img=new Image(); img.arr=arr; img.list=[]; img.num=0; img.callback=callback; // 如果DOM對象下的事件偵聽沒有被刪除掉,將會常駐堆中 // 一旦觸發(fā)了這個事件需要的條件,就會繼續(xù)執(zhí)行事件函數(shù) img.addEventListener("load",this.loadHandler); img.self=this; img.src=arr[img.num]; }, loadHandler:function (e) { this.list.push(this.cloneNode(false)); this.num++; if(this.num>this.arr.length-1){ this.removeEventListener("load",this.self.loadHandler); this.callback(this.list); return; } this.src=this.arr[this.num]; }, $c:function (type,parent,style) { var elem=document.createElement(type); if(parent) parent.appendChild(elem); for(var key in style){ elem.style[key]=style[key]; } return elem; } } })();
html文件:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #con,#bgImg,#bgImg img { width: 100%; height: 500px; } #con { position: relative; margin: auto; } #bgImg{ position: absolute; } #bgImg img{ opacity: 1; transition: all 1s; position: absolute; left:0; top:0; } #iconImg { position: absolute; width: 120px; right: 50px; top:30px; } #iconImg img { margin-top: 8px; border: 2px solid #FFA50000; transition: all 0.5s; } </style> <script src="js/Method.js"></script> </head> <body> <div id="con"> <div id="bgImg"> <img src="img/a.jpeg"> </div> <div id="iconImg"> <img src="img/icon_a.jpeg"> <img src="img/icon_b.jpeg"> <img src="img/icon_c.jpeg"> <img src="img/icon_d.jpeg"> <img src="img/icon_e.jpeg"> </div> </div> <script> var bgImg,iconImg,prevImg,imgList;//定義大圖 小圖的盒子(5個img) var N=0;//圖像標記 var arr=["img/a.jpeg","img/b.jpeg","img/c.jpeg","img/d.jpeg","img/e.jpeg"];//圖片設置為數(shù)組形式 傳參 init(); function init() { Method.loadImage(arr,loadFinishHandler)//預加載 } function loadFinishHandler(list) {//預加載賦值 imgList=list; bgImg=document.getElementById("bgImg"); iconImg=document.getElementById("iconImg"); for(var i=0;i<iconImg.children.length;i++){ iconImg.children[i].num=i; iconImg.children[i].addEventListener("click",clickHandler); } changeBorder(iconImg.firstElementChild); } setInterval(autoImg,3000); function autoImg() {//自動輪播效果 N++; //全局變量 用于控制當前輪播順序 if (N>4) N=0; changeImg(N);//大圖輪播 changeBorder(iconImg.children[N]);//小圖外邊框輪播 設置第幾個 弄懂參數(shù)代表含義 } function clickHandler(e) { e =e || window.event; changeBorder(this); N=this.num; changeImg(this.num); } function changeBorder(elem) { if(prevImg){ prevImg.style.border="2px solid #FFA50000"; } prevImg=elem; prevImg.style.border="2px solid #FFA500"; } function changeImg(index) { if(bgImg.children.length>1){ bgImg.lastElementChild.remove(); } bgImg.lastElementChild.style.opacity="0"; imgList[index].style.opacity="1"; bgImg.insertBefore(imgList[index],bgImg.firstElementChild); } </script> </body> </html>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JavaScript實現(xiàn)彈出DIV層同時頁面背景漸變成半透明效果
這篇文章主要介紹了JavaScript實現(xiàn)彈出DIV層同時頁面背景漸變成半透明效果,涉及JavaScript彈出窗口的實現(xiàn)及頁面元素屬性動態(tài)變換的相關技巧,需要的朋友可以參考下2016-03-03JS實現(xiàn)隱藏同級元素后只顯示JS文件內(nèi)容的方法
這篇文章主要介紹了JS實現(xiàn)隱藏同級元素后只顯示JS文件內(nèi)容的方法,可實現(xiàn)將與js文件的同級元素全部隱藏,只顯示js文件內(nèi)容的功能,涉及javascript針對頁面元素的遍歷與屬性修改相關技巧,需要的朋友可以參考下2016-09-09基于JavaScript實現(xiàn)表單密碼的隱藏和顯示出來
為了網(wǎng)站的安全性,很多朋友都把密碼設的比較復雜,但是如何密碼不能明顯示,不知道輸?shù)氖菍κ清e,為了安全起見可以把密碼顯示的,那么基于js代碼如何實現(xiàn)的呢?下面通過本文給大家介紹JavaScript實現(xiàn)表單密碼的隱藏和顯示,需要的朋友參考下2016-03-03JavaScript實踐之使用Canvas開發(fā)一個可配置的大轉盤抽獎功能
公司項目搞優(yōu)惠活動,讓做一個轉盤抽獎的活動,這篇文章主要給大家介紹了關于JavaScript實踐之使用Canvas開發(fā)一個可配置的大轉盤抽獎功能的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-11-11