JS實(shí)現(xiàn)縱向輪播圖(初級(jí)版)
本文實(shí)例為大家分享了JS實(shí)現(xiàn)縱向輪播圖的具體代碼,供大家參考,具體內(nèi)容如下
描述:
縱向buton或者底部數(shù)字控制輪播,可以實(shí)現(xiàn)自動(dòng)輪播(注釋了,使用的話將其注釋消掉),核心知識(shí)是數(shù)據(jù)驅(qū)動(dòng)圖像的透明度達(dá)到效果。
效果:
代碼:
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對(duì)象下的事件偵聽(tīng)沒(méi)有被刪除掉,將會(huì)常駐堆中 // 一旦觸發(fā)了這個(gè)事件需要的條件,就會(huì)繼續(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個(gè)img) var N=0;//圖像標(biāo)記 var arr=["img/a.jpeg","img/b.jpeg","img/c.jpeg","img/d.jpeg","img/e.jpeg"];//圖片設(shè)置為數(shù)組形式 傳參 init(); function init() { Method.loadImage(arr,loadFinishHandler)//預(yù)加載 } function loadFinishHandler(list) {//預(yù)加載賦值 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() {//自動(dòng)輪播效果 N++; //全局變量 用于控制當(dāng)前輪播順序 if (N>4) N=0; changeImg(N);//大圖輪播 changeBorder(iconImg.children[N]);//小圖外邊框輪播 設(shè)置第幾個(gè) 弄懂參數(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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實(shí)現(xiàn)彈出DIV層同時(shí)頁(yè)面背景漸變成半透明效果
這篇文章主要介紹了JavaScript實(shí)現(xiàn)彈出DIV層同時(shí)頁(yè)面背景漸變成半透明效果,涉及JavaScript彈出窗口的實(shí)現(xiàn)及頁(yè)面元素屬性動(dòng)態(tài)變換的相關(guān)技巧,需要的朋友可以參考下2016-03-03javascript 手機(jī)號(hào)碼驗(yàn)證是否正確
javascript 手機(jī)號(hào)碼驗(yàn)證實(shí)現(xiàn)代碼。2009-06-06在chrome中window.onload事件的一些問(wèn)題
在寫(xiě)一些關(guān)于圖片操作的代碼的時(shí)候,一般都需要在圖片加載完成之后再執(zhí)行程序。然而在Chorme中(貌似Safari也是)對(duì)window.onload的理解與IE和FF有偏差。2010-03-03JS實(shí)現(xiàn)隱藏同級(jí)元素后只顯示JS文件內(nèi)容的方法
這篇文章主要介紹了JS實(shí)現(xiàn)隱藏同級(jí)元素后只顯示JS文件內(nèi)容的方法,可實(shí)現(xiàn)將與js文件的同級(jí)元素全部隱藏,只顯示js文件內(nèi)容的功能,涉及javascript針對(duì)頁(yè)面元素的遍歷與屬性修改相關(guān)技巧,需要的朋友可以參考下2016-09-09基于JavaScript實(shí)現(xiàn)表單密碼的隱藏和顯示出來(lái)
為了網(wǎng)站的安全性,很多朋友都把密碼設(shè)的比較復(fù)雜,但是如何密碼不能明顯示,不知道輸?shù)氖菍?duì)是錯(cuò),為了安全起見(jiàn)可以把密碼顯示的,那么基于js代碼如何實(shí)現(xiàn)的呢?下面通過(guò)本文給大家介紹JavaScript實(shí)現(xiàn)表單密碼的隱藏和顯示,需要的朋友參考下2016-03-03完美實(shí)現(xiàn)仿QQ空間評(píng)論回復(fù)特效
這篇文章主要介紹了完美實(shí)現(xiàn)仿QQ空間評(píng)論回復(fù)特效,非常的實(shí)用,附上實(shí)例代碼給大家,有需要的小伙伴參考下吧。2015-05-05微信小程序?qū)崿F(xiàn)預(yù)約生成二維碼功能
通過(guò)點(diǎn)擊預(yù)約按鈕即可生成二維碼憑碼入校參觀,下面小編通過(guò)實(shí)例代碼講解微信小程序?qū)崿F(xiàn)預(yù)約生成二維碼功能,感興趣的朋友跟隨小編一起看看吧2024-04-04JavaScript實(shí)踐之使用Canvas開(kāi)發(fā)一個(gè)可配置的大轉(zhuǎn)盤(pán)抽獎(jiǎng)功能
公司項(xiàng)目搞優(yōu)惠活動(dòng),讓做一個(gè)轉(zhuǎn)盤(pán)抽獎(jiǎng)的活動(dòng),這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)踐之使用Canvas開(kāi)發(fā)一個(gè)可配置的大轉(zhuǎn)盤(pán)抽獎(jiǎng)功能的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11