js改變透明度實(shí)現(xiàn)輪播圖的算法
前面有分享過(guò)改變層級(jí)的輪播圖算法,今天繼續(xù)利用透明度來(lái)實(shí)現(xiàn)無(wú)位移的輪播圖算法。
實(shí)現(xiàn)邏輯:將所有要輪播的圖片全部定位到一起,即一層一層摞起來(lái),并且利用層級(jí)的屬性調(diào)整正確的圖片順序,將圖片的透明度全部設(shè)置為0,然后在讓初始的第一張圖片的透明度為1即可,具體算法如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>改變透明度算法(經(jīng)典)</title> <style media="screen"> * { margin: 0; padding: 0; } .wrap { width: 60%; margin: auto; position: relative; } .wrap img { width: 100%; position: absolute; left: 0; top: 0; transition: 2s; } .wrap img:nth-child(1) { position: relative; } .wrap .follow { width: 150px; height: 30px; margin: auto; display: flex; justify-content: space-between; } .wrap .follow span { width: 10px; height: 10px; border-radius: 50%; border: 3px solid gray; } .wrap .follow span:hover { cursor: pointer; } </style> </head> <body> <div class="wrap"> <img src="img/01.jpg" alt="" /> <img src="img/02.jpg" alt="" /> <img src="img/03.jpg" alt="" /> <img src="img/04.jpg" alt="" /> <input id="leftBut" type="button" name="name" value="◀︎"> <input id="rightBut" type="button" name="name" value="▶︎"> <div class="follow"> <span></span> <span></span> <span></span> <span></span> </div> </div> </body> <script type="text/javascript"> // 獲取所需元素 var images = document.querySelectorAll('.wrap img'); var spans = document.querySelectorAll('.follow span'); var leftBut = document.getElementById('leftBut'); var rightBut = document.getElementById('rightBut'); // 定義有參函數(shù) function showImage(index) { for (var i = 0; i < images.length; i++) { spans[i].index = i;//自定義屬性,得到對(duì)應(yīng)的下標(biāo) images[i].index = i;//自定義屬性,得到對(duì)應(yīng)的下標(biāo) images[i].style.zIndex = 100 - i;//為圖片排列順序 images[i].style.opacity = '0';//將圖片透明度全部賦值為0 spans[i].style.background = 'gray';//圓點(diǎn)北京色全部設(shè)置為黑色 } //將傳入?yún)?shù)下標(biāo)值的圖片透明度賦值為 1 images[index].style.opacity = '1'; //將傳入?yún)?shù)下標(biāo)值的圖片的背景色賦值為white spans[index].style.background = 'white'; } showImage(0);//初始設(shè)置下標(biāo)為0的圖片和圓點(diǎn)的樣式 var count = 1;//獲取計(jì)數(shù)器 // 定義自動(dòng)輪播函數(shù) function imageMove() { // 判斷count的值如果能被4整除,則將count重新賦值為0; if (count % 4 == 0) { count = 0; } // 將count值當(dāng)做參數(shù)傳給函數(shù)showImage(); showImage(count); count++;//執(zhí)行一次 +1 } // 設(shè)置兩秒調(diào)用一次函數(shù)imageMove(),并且賦值給imageInitailMove var imageInitailMove = setInterval('imageMove()', 2000); // 向左點(diǎn)擊事件 leftBut.onclick = function() { // 先清除定時(shí)器 clearInterval(imageInitailMove); // 由于和自動(dòng)輪方向相反所以要判斷count的值當(dāng)值為0時(shí),重新賦值為4,繼續(xù)循環(huán) if (count == 0) { count = 4; } count--; showImage(count);//調(diào)用函數(shù)count先自- imageInitailMove = setInterval('imageMove()', 2000); } // 向右的點(diǎn)擊事件 rightBut.onclick = function() { clearInterval(imageInitailMove); imageMove();//由于和自動(dòng)輪播的方向相同所以直接調(diào)用 // 重新為定時(shí)器賦值 imageInitailMove = setInterval('imageMove()', 2000); } // 圓點(diǎn)的點(diǎn)擊事件 for (var i = 0; i < spans.length; i++) { spans[i].onclick = function() { clearInterval(imageInitailMove); // 將當(dāng)前點(diǎn)擊的圓點(diǎn)的下標(biāo)值賦值給count count = event.target.index; // 調(diào)用函數(shù) showImage(count); imageInitailMove = setInterval('imageMove()', 2000); } } </script> </html>
精彩專(zhuān)題分享:jQuery圖片輪播 JavaScript圖片輪播 Bootstrap圖片輪播
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js實(shí)現(xiàn)透明度漸變效果的方法
- 原生Js實(shí)現(xiàn)元素漸隱/漸現(xiàn)(原理為修改元素的css透明度)
- js實(shí)現(xiàn)感應(yīng)鼠標(biāo)圖片透明度變化的方法
- js實(shí)現(xiàn)鼠標(biāo)劃過(guò)給div加透明度的方法
- 基于JS實(shí)現(xiàn)仿京東搜索欄隨滑動(dòng)透明度漸變效果
- JS+CSS實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)彈出一個(gè)DIV框完整實(shí)例(帶緩沖動(dòng)畫(huà)漸變效果)
- js實(shí)現(xiàn)按鈕顏色漸變動(dòng)畫(huà)效果
- JS實(shí)現(xiàn)響應(yīng)鼠標(biāo)點(diǎn)擊動(dòng)畫(huà)漸變彈出層效果代碼
- JS實(shí)現(xiàn)點(diǎn)擊登錄彈出窗口同時(shí)背景色漸變動(dòng)畫(huà)效果
- JS實(shí)現(xiàn)的透明度漸變動(dòng)畫(huà)效果示例
相關(guān)文章
慕課網(wǎng)題目之js實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)功能
這篇文章主要為大家詳細(xì)介紹了慕課網(wǎng)題目之js抽獎(jiǎng)系統(tǒng)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09利用CSS、JavaScript及Ajax實(shí)現(xiàn)圖片預(yù)加載的方法
預(yù)加載圖片是提高用戶(hù)體驗(yàn)的一個(gè)很好方法,實(shí)現(xiàn)圖片預(yù)加載可以使用css、JavaScript、Ajax三種方法。下面逐一給大家介紹利用CSS、JavaScript及Ajax實(shí)現(xiàn)圖片預(yù)加載的方法,需要的朋友參考下吧2016-11-11微信小程序的tab選項(xiàng)卡的實(shí)現(xiàn)效果
這篇文章主要介紹了微信小程序的tab選項(xiàng)卡的實(shí)現(xiàn)效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05統(tǒng)計(jì)出現(xiàn)最多的字符次數(shù)的js代碼
一小段代碼,經(jīng)常出現(xiàn)在面試筆試題中的:統(tǒng)計(jì)一個(gè)字符串中出現(xiàn)最多的字符的次數(shù),可以是英文或者數(shù)字。2010-12-12DataTables添加額外的查詢(xún)參數(shù)和刪除columns等無(wú)用參數(shù)實(shí)例
下面小編就為大家?guī)?lái)一篇DataTables添加額外的查詢(xún)參數(shù)和刪除columns等無(wú)用參數(shù)實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07