电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

JavaScript實現簡單的輪播圖效果

瀏覽:24日期:2023-06-01 16:42:02
輪播圖是什么?

輪播圖:在一個模塊或者說窗口,通過電腦上鼠標點擊、手機上手指滑動后,可以看到多張圖片。這些圖片就都是輪播圖,這個模塊就叫做輪播模塊。

如何實現輪播圖

如何才能在js里面做成一個輪播圖呢,比如下面這種的,可以自動生成圖片對應的小圓點、點擊左右箭頭可以跳到上或下一張圖片、每隔幾秒自動輪播,還可以點擊小小圓點去到指定的圖片。

JavaScript實現簡單的輪播圖效果

HTML結構

首先我們創建一個HTML頁面,這個結構很簡單,用一個大的div嵌套兩個div,取個名字叫slider,上面的div用來裝圖片,取個名字叫slider-img,下面的div就是控件,用來裝上下張圖片的按鈕和小圓點,這個就叫做slider-ctrl。

<!DOCTYPE html><html><head lang='en'> <meta charset='UTF-8'> <title></title> <link rel='stylesheet' href='http://www.hdgsjgj.cn/bcjs/css/index.css'/> <script src='http://www.hdgsjgj.cn/public.js'></script> <script src='http://www.hdgsjgj.cn/bcjs/js/index.js'></script></head><body> <div id='slider'><div class='slider-img'> <ul><li><a href='http://www.hdgsjgj.cn/bcjs/13959.html#'><img src='http://www.hdgsjgj.cn/bcjs/images/1.jpg' alt=''/></a></li><li><a href='http://www.hdgsjgj.cn/bcjs/13959.html#'><img src='http://www.hdgsjgj.cn/bcjs/images/2.jpg' alt=''/></a></li><li><a href='http://www.hdgsjgj.cn/bcjs/13959.html#'><img src='http://www.hdgsjgj.cn/bcjs/images/3.jpg' alt=''/></a></li><li><a href='http://www.hdgsjgj.cn/bcjs/13959.html#'><img src='http://www.hdgsjgj.cn/bcjs/images/4.jpg' alt=''/></a></li><li><a href='http://www.hdgsjgj.cn/bcjs/13959.html#'><img src='http://www.hdgsjgj.cn/bcjs/images/5.jpg' alt=''/></a></li><li><a href='http://www.hdgsjgj.cn/bcjs/13959.html#'><img src='http://www.hdgsjgj.cn/bcjs/images/6.jpg' alt=''/></a></li> </ul></div><div class='slider-ctrl'>//在這里自動生成小圓點 <span id='prev'></span> <span id='next'></span></div> </div></body></html>

CSS代碼

css代碼非常簡單,略。

* { margin: 0; padding: 0;}.slider { width: 310px; height: 265px; margin: 100px auto; position: relative; overflow: hidden;}.slider-img { width: 310px; height: 220px;}ul { list-style: none;}li { position: absolute; top: 0; left: 0;}.slider-ctrl { text-align: center; padding-top: 10px;}.slider-ctrl-con { display: inline-block; width: 24px; height: 24px; background: url(../images/icon.png) no-repeat -24px -780px; text-indent: -99999px; margin: 0 5px; cursor: pointer;}.slider-ctrl-con.current { background-position: -24px -760px;}.prev,.next { position: absolute; top: 40%; width: 30px; height: 35px; background: url(../images/icon.png) no-repeat;}.prev { left: 10px;}.next { right: 10px; background-position: 0 -44px;}

js代碼

首先需要做一波需求分析,能夠理清思路,然后在來一步一步的寫代碼。我們先獲取相關的元素,然后根據圖片數量生成對應的小圓點,由于圖片是堆疊在一起的,我們把其他的圖都放到右邊隱藏起來,顯示第一張圖片即可。隨后需要點亮第一個小圓點,保證小圓點和圖片是綁定在一起的。然后我們需要實現點擊右箭頭看到下一張圖,點擊左箭頭看到上一張圖,點擊小圓點可以顯示對應的圖片,且都要點亮相對于的圖片。最后就是讓他自動輪播圖片,鼠標移入時停止輪播,鼠標移出時繼續輪播

window.onload = function(){ // 0 獲取相關元素 // 總容器 var slider = document.getElementById(’slider’); // 所有圖片li的集合 var imgLiS = slider.children[0].children[0].children; // 控制按鈕的容器 var ctrlDiv = slider.children[1]; // 左箭頭(上一張按鈕) var prev = document.getElementById(’prev’) // 右箭頭(下一張按鈕) var next = document.getElementById(’next’) // 容器的寬度 var width = slider.offsetWidth; // 用一個變量記錄當前顯示的圖片的索引 var index = 0; // 1 根據圖片數量生成對應的小圓點 for(var i=imgLiS.length-1;i>=0;i--){var newPoint = document.createElement(’span’);// 給每個節點里面記錄他是第幾個節點,方便后期點擊時候知道是第幾個newPoint.className = 'slider-ctrl-con';newPoint.innerHTML = i;// 放到最前面ctrlDiv.insertBefore(newPoint,ctrlDiv.children[0])// 2 所有的圖片都放到右邊imgLiS[i].style.left = width+'px' } // 2 輪播圖顯示第一幅圖 imgLiS[index].style.left = 0; // 獲取所有的小圓點 var ctrlS = ctrlDiv.children; // 3 點亮第一個小圓點 light() // 4 點擊左箭頭可以看前一幅圖,點亮對應的小圓點 prev.onclick = prevImg; // 5 點擊右箭頭可以看后一幅圖,點亮對應的小圓點 next.onclick = nextImg; // 6 點擊小圓點,點亮這個小圓點,并顯示對應的圖片 for(var i=0;i<imgLiS.length;i++){ctrlS[i].onclick = function(){ var num = +this.innerHTML; if(num>index){// 我認為后面的圖在右邊imgLiS[num].style.left = width+'px';// 當前圖去左邊move(imgLiS[index],’left’,-width)// 我要看的圖去中間move(imgLiS[num],’left’,0) } if(num<index){// 我認為前面的圖在左邊imgLiS[num].style.left = -width+'px';// 當前圖去右邊move(imgLiS[index],’left’,width)// 我要看的圖去中間move(imgLiS[num],’left’,0) } // 更新index index = num; // 點亮小圓點 light()} } // 7 可以自動輪播圖: 每隔3秒看下一張 var timer = setInterval(nextImg,3000) // 8 鼠標移入停止輪播 slider.onmouseenter = function(){clearInterval(timer) } // 9 鼠標移出繼續輪播 slider.onmouseleave = function(){clearInterval(timer)timer = setInterval(nextImg,3000) }// 由于點亮小圓點多次執行,封裝成函數 function light(){for(var i=0;i<imgLiS.length;i++){ ctrlS[i].className = 'slider-ctrl-con'}ctrlS[index].className = 'slider-ctrl-con current' } // 看上一張圖的函數 function prevImg(){var num = index-1;if(num<0){ // 索引最小是0,如果要看的索引比0小,就是最后一張,也就是第length-1張 num = imgLiS.length-1;}// 我認為前一張圖一定在左邊imgLiS[num].style.left = -width+'px';// 當前圖片運動到右邊move(imgLiS[index],’left’,width)// 要看的圖片運動到中間move(imgLiS[num],’left’,0)// 運動完成以后容器里面顯示的是num這個圖// 所以記錄當前索引的index里面的值變成numindex = num;light() } // 看下一張圖的函數 function nextImg(){var num = index + 1;if(num>imgLiS.length-1){ num = 0;}// 我認為下一張一定在右邊imgLiS[num].style.left = width+'px';// 當前圖片去左邊move(imgLiS[index],’left’,-width)// 我要看的下一張去中間move(imgLiS[num],’left’,0)// 更新index的值index = num;light() }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 冷水机-工业冷水机-冷水机组-欧科隆品牌保障 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | 温州富欧金属封头-不锈钢封头厂家| 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 广东青藤环境科技有限公司-水质检测 | 余姚生活网_余姚论坛_余姚市综合门户网站 | 洗地机_全自动洗地机_手推式洗地机【上海滢皓环保】 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 深圳办公室装修-写字楼装修设计-深圳标榜装饰公司 | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 焊缝跟踪系统_激光位移传感器_激光焊缝跟踪传感器-创想智控 | 伶俐嫂培训学校_月嫂培训班在哪里报名学费是多少_月嫂免费政府培训中心推荐 | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 中药超微粉碎机(中药细胞级微粉碎)-百科 | 广州二手电缆线回收,旧电缆回收,广州铜线回收-广东益福电缆线回收公司 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 防水套管厂家-柔性防水套管-不锈钢|刚性防水套管-天翔管道 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 永嘉县奥阳陶瓷阀门有限公司| 美的商用净水器_美的直饮机_一级代理经销商_Midea租赁价格-厂家反渗透滤芯-直饮水批发品牌售后 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业 | 陕西鹏展科技有限公司| 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | pH污水传感器电极,溶解氧电极传感器-上海科蓝仪表科技有限公司 | 溶氧传感器-pH传感器|哈美顿(hamilton) | 主题班会网 - 安全教育主题班会,各类主题班会PPT模板 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 安驭邦官网-双向万能直角铣头,加工中心侧铣头,角度头[厂家直销] 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 上海办公室装修,写字楼装修—启鸣装饰设计工程有限公司 |