久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

JS輪播圖的實(shí)現(xiàn)方法2

瀏覽:106日期:2024-04-24 09:48:00

本文實(shí)例為大家分享了JS輪播圖的實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下

需求:

自動(dòng)輪播,鼠標(biāo)移入輪播停止、移出繼續(xù),小圓點(diǎn)點(diǎn)擊切圖,左右箭頭切圖

效果圖:

![輪播圖]

JS輪播圖的實(shí)現(xiàn)方法2

思路:

JS輪播圖的實(shí)現(xiàn)方法2

將所有需要輪播的圖片橫向排列,可視區(qū)大小設(shè)置為只能顯示一張圖片,給容器設(shè)置移出隱藏后,可視區(qū)之外的部分被隱藏,這樣我們就只能看見(jiàn)一張圖片。輪播實(shí)現(xiàn)是改變整個(gè)圖片畫(huà)幅的left值或者margin-left 值,當(dāng)點(diǎn)擊時(shí)移動(dòng)整個(gè)畫(huà)幅單個(gè)圖片的寬度即可實(shí)現(xiàn)滾動(dòng)到下一張。后面功能實(shí)現(xiàn)順序依舊是寫(xiě)法一里的思路。

戳!寫(xiě)法一地址

HTML部分:

<div id='banner'> <div class='w'><!-- 左右箭頭--> <span class='iconfont icon-zuojiantou'></span> <span class='iconfont icon-youjiantou'></span><!-- 輪播圖--> <ul > <li><img src='http://m.baoyu77737.com/bcjs/img/1.jpg' alt=''></li> <li><img src='http://m.baoyu77737.com/bcjs/img/2.jpg' alt=''></li> <li><img src='http://m.baoyu77737.com/bcjs/img/3.jpg' alt=''></li> </ul><!-- /小圓點(diǎn)--> <ol id='circleContainer'> </ol> </div></div>

CSS部分:

<style> *{ margin: 0; padding: 0; list-style: none; } .w { width: 1000px; height: 600px; margin: 100px auto 0; position: relative; overflow: hidden; } ul { width: 1000%; transition: all .5s ease-in-out; } ul li { float: left; width: 1000px; } ul li img { width: 100%; height: 600px; } .iconfont { color: white; position: absolute; font-size: 30px; top: calc(50% - 15px); background-color: rgba(216, 216, 216, 0.23); border-top-right-radius: 50%; border-bottom-right-radius: 50%; cursor: pointer; } .iconfont:hover { color: palegreen; } .icon-zuojiantou { left: 0; } .icon-youjiantou { right: 0; } #circleContainer { position: absolute; bottom: 10px; left: calc(50% - 30px); } #circleContainer li { display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: white; margin-right: 5px; } #circleContainer .change { background-color: palegreen; }</style>

JS部分:

<script> let timer = setInterval(function () { arrow_r.onclick(); },2000); let w = document.querySelector('.w'); w.addEventListener('mouseenter',function () { clearInterval(timer); }); w.addEventListener('mouseleave',function () { clearInterval(timer); timer = setInterval(function () { arrow_r.onclick(); },2000); }); //獲取元素 let ul = document.querySelector('ul'); let ol = document.querySelector('#circleContainer'); let arrow_r = document.querySelector('.icon-youjiantou'); let arrow_l = document.querySelector('.icon-zuojiantou'); let ImgWidth = ul.children[0].offsetWidth; let location_i = 0 ; // 創(chuàng)建小圓點(diǎn) 動(dòng)態(tài)生成小圓點(diǎn),圖片增加時(shí)小圓點(diǎn)也隨之增加 for (let i = 0; i<ul.children.length;i++){ let li = document.createElement('li'); li.setAttribute('index',i); li.addEventListener('click',function () { let index = this.getAttribute('index'); move(ul,index); location_i = index ; }); ol.appendChild(li); } let liclone = ul.children[0].cloneNode(true); ul.appendChild(liclone); // 輪播函數(shù) function move(targetObj,n) { if (n === targetObj.children.length ) { targetObj.style.marginLeft = '0px'; n = 0; } targetObj.style.marginLeft = -n * ImgWidth +'px'; for (let i =0 ;i<ol.children.length;i++){ ol.children[i].className = ''; } n === 3 ? ol.children[0].className = 'change': ol.children[n].className = 'change'; } ol.children[0].className = 'change'; // 右箭頭點(diǎn)擊 arrow_r.onclick = function () { if (location_i === 3) { location_i = 0 ; ul.style.marginLeft = '0px' ; } location_i++; move(ul,location_i); }; // 左箭頭點(diǎn)擊 arrow_l.addEventListener('click',function () { if (location_i == 0) { location_i = ul.children.length -1 ; } location_i--; move(ul,location_i); })</script>

精彩專(zhuān)題分享:jQuery圖片輪播 JavaScript圖片輪播 Bootstrap圖片輪播

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 平度市| 武乡县| 子长县| 郁南县| 湘潭市| 怀柔区| 宣恩县| 海门市| 奈曼旗| 肇源县| 永靖县| 永济市| 娄底市| 景东| 青阳县| 大竹县| 那曲县| 邛崃市| 黄冈市| 德惠市| 沁水县| 奉新县| 鄄城县| 巩义市| 新河县| 龙山县| 崇信县| 花垣县| 沂水县| 潞西市| 普陀区| 庆元县| 莎车县| 正蓝旗| 昭平县| 丹江口市| 丹棱县| 罗江县| 北宁市| 离岛区| 五大连池市|