js實(shí)現(xiàn)簡單輪播圖效果
本文實(shí)例為大家分享了js實(shí)現(xiàn)簡單輪播圖效果的具體代碼,供大家參考,具體內(nèi)容如下
使用transform = translateX()實(shí)現(xiàn)的圖片切換
<style> .box { position: relative; overflow: hidden; margin: 200px auto; width: 600px; height: 400px; } .img { width: 3000px; height: 400px; } img { float: left; width: 600px; height: 400px; } .btn { position: absolute; top: 350px; left: 245px; width: 110px; height: 20px; } .dian { float: left; margin: 5px; width: 12px; height: 12px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.3); cursor: pointer; } .left, .right { display: none; box-sizing: border-box; position: absolute; top: 150px; width: 50px; height: 100px; background-color: rgba(0, 0, 0, 0.521); font-size: 40px; line-height: 100px; color: #fff; } .box:hover .left, .box:hover .right { display: block; } .left { padding-left: 10px; left: 0; } .right { padding-right: 10px; text-align: right; right: 0; } </style>
<div class="box"> <div class="img"> <img src="./img/1.jpeg" alt=""> <img src="./img/2.jpeg" alt=""> <img src="./img/3.jpeg" alt=""> <img src="./img/4.jpeg" alt=""> <img src="./img/5.jpeg" alt=""> </div> <div class="btn"> <span class="dian"></span> <span class="dian"></span> <span class="dian"></span> <span class="dian"></span> <span class="dian"></span> </div> <div class="left">< </div> <div class="right">></div> </div>
<script> var btn = document.getElementsByClassName('btn')[0]; var imgBox = document.getElementsByClassName('img')[0]; var imgs = imgBox.getElementsByTagName('img'); var btnChild = document.getElementsByClassName('dian'); var k = 0; // 向按鈕添加自定義屬性 for (var i = 0; i < btnChild.length; i++) { btnChild[i].dataset.num = i * 600; } // 默認(rèn)為 第一張圖片,第一個(gè)按鈕為白色 btnChild[0].style.background = 'rgba(255, 255, 255, 0.8)'; // 點(diǎn)擊按鈕切換圖片,按鈕變色 btn.onclick = function(e) { if (e.target.nodeName === 'SPAN') { // 先讓所有按鈕為默認(rèn)顏色 for (var i = 0; i < btnChild.length; i++) { btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)'; } // 點(diǎn)擊的按鈕變色 k = +e.target.dataset.num; console.log(k); btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)'; // 切換圖片 imgBox.style.transform = `translateX(-${e.target.dataset.num}px)`; } } // 獲取圖片長度 // var imgWidth = +getComputedStyle(imgs[0]).width.slice(0, -2); var imgWidth = imgs[0].offsetWidth; // 定時(shí)器 移動(dòng)圖片 var interval1 = setInterval(move, 1000); var interval; // 函數(shù) 移動(dòng)圖片,改變按鈕 function move() { k += imgWidth; if (k === imgWidth * imgs.length) { k = 0; } // 移動(dòng)圖片 imgBox.style.transform = `translateX(-${k}px)`; // 改變按鈕顏色 for (var i = 0; i < btnChild.length; i++) { btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)'; } btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)'; } // 鼠標(biāo)移動(dòng)到圖片上 刪除定時(shí)器 var box = document.getElementsByClassName('box')[0]; box.onmouseover = function() { clearInterval(interval1); clearInterval(interval); } // 鼠標(biāo)移出 啟動(dòng)定時(shí)器 box.onmouseout = function() { interval = setInterval(move, 1000); } var leftBtn = document.getElementsByClassName('left')[0]; var rightBtn = document.getElementsByClassName('right')[0]; rightBtn.onclick = function() { k += imgWidth; if (k === imgWidth * imgs.length) { k = 0; } // 移動(dòng)圖片 imgBox.style.transform = `translateX(-${k}px)`; // 改變按鈕顏色 for (var i = 0; i < btnChild.length; i++) { btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)'; } btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)'; } leftBtn.onclick = function() { k -= imgWidth; if (k < 0) { k = imgWidth * (imgs.length - 1); } imgBox.style.transform = `translateX(-${k}px)`; // 改變按鈕顏色 for (var i = 0; i < btnChild.length; i++) { btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)'; } btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)'; } </script>
效果圖:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS實(shí)現(xiàn)多重選項(xiàng)卡切換輪播圖
- 原生JavaScript實(shí)現(xiàn)輪播圖效果
- JavaScript實(shí)現(xiàn)簡易輪播圖最全代碼解析(ES6面向?qū)ο?
- JavaScript實(shí)現(xiàn)簡易輪播圖最全代碼解析(ES5)
- js實(shí)現(xiàn)輪播圖的完整代碼
- 原生js實(shí)現(xiàn)輪播圖的示例代碼
- js實(shí)現(xiàn)支持手機(jī)滑動(dòng)切換的輪播圖片效果實(shí)例
- JS輪播圖實(shí)現(xiàn)簡單代碼
- js實(shí)現(xiàn)點(diǎn)擊左右按鈕輪播圖片效果實(shí)例
- JavaScript實(shí)現(xiàn)輪播圖案例
相關(guān)文章
原生js實(shí)現(xiàn)圖片放大縮小計(jì)時(shí)器效果
本文主要介紹了原生js實(shí)現(xiàn)圖片放大縮小計(jì)時(shí)器效果的示例代碼。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01vue/js實(shí)現(xiàn)頁面自動(dòng)往上滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了vue/js實(shí)現(xiàn)頁面自動(dòng)往上滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04JS實(shí)現(xiàn)的跨瀏覽器解析XML文件實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)的跨瀏覽器解析XML文件的方法,結(jié)合實(shí)例形式分析了javascript基于ActiveXObject操作xml文件的加載與解析相關(guān)技巧,需要的朋友可以參考下2016-06-06JavaScript實(shí)現(xiàn)在標(biāo)題欄上顯示當(dāng)前日期的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)在標(biāo)題欄上顯示當(dāng)前日期的方法,涉及javascript操作時(shí)間及DOM節(jié)點(diǎn)的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03微信開發(fā)之調(diào)起攝像頭、本地展示圖片、上傳下載圖片實(shí)例
這篇文章主要介紹了微信開發(fā)之調(diào)起攝像頭、本地展示圖片、上傳下載圖片實(shí)例,具有一定的參考價(jià)值有興趣的可以了解一下。2016-12-12uni-app中使用手機(jī)號一鍵登錄的詳細(xì)圖文教程
最近剛接觸了uni-app,用于開發(fā)微信小程序,設(shè)計(jì)到了微信授權(quán)登錄,下面這篇文章主要給大家介紹了關(guān)于uni-app中使用手機(jī)號一鍵登錄的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01js位運(yùn)算在實(shí)際中使用的實(shí)例教程
我們可能很少在編程中用位運(yùn)算,如果沒深入學(xué)習(xí),可能也很難理解,下面這篇文章主要給大家介紹了關(guān)于js位運(yùn)算在實(shí)際中使用的相關(guān)資料,需要的朋友可以參考下2022-03-03