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

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

原生JS實現無縫輪播圖片

瀏覽:107日期:2024-05-04 11:43:04

本文實例為大家分享了JS實現無縫輪播圖的具體代碼,供大家參考,具體內容如下

運動插件

function animove(obj,distance,speed,callback) { //調用的變量 目標距離 速度 回調函數 clearInterval(obj.timer); obj.timer = setInterval(function () { let step = (distance - obj.offsetLeft) / 10; step = step > 0 ? Math.ceil(step) : Math.floor(step); if (obj.offsetLeft == distance) { clearInterval(obj.timer); if (callback) { callback(); } } obj.style.left = obj.offsetLeft + step + ’px’; },speed)}

CSS代碼

* { margin: 0; padding: 0; } ul,li { list-style: none; } .box { width: 1226px; height: 460px; margin: 100px auto; position: relative; overflow: hidden; } .pic-box { width: 4904px; position: absolute; } .pic-box > li { float: left; } .point { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); } .point > li { float: left; width: 8px; height: 8px; border: 1px solid blueviolet; margin: 0 4px; border-radius: 50%; } .point > .active { background-color: orange; } .left-btn, .right-btn { width: 50px; height: 40px; background-color: rgba(0,0,0,.5); text-align: center; line-height: 40px; font-size: 20px; color: white; position: absolute; top: 50%; transform: translateY(-50%); } .left-btn { left: 0; } .right-btn { right: 0; }

HTML代碼

<div class='box'> <ul class='pic-box'> <li> <img src='http://www.hdgsjgj.cn/bcjs/lb.webp' alt=''> </li> <li> <img src='http://www.hdgsjgj.cn/bcjs/lb2.webp' alt=''> </li> <li> <img src='http://www.hdgsjgj.cn/bcjs/pic3.jpg' alt=''> </li> </ul> <ul class='point'> </ul> <div class='left-btn'><</div> <div class='right-btn'>></div> </div><script src='http://www.hdgsjgj.cn/bcjs/運動插件.js'></script>

js代碼

let picbox = document.querySelector(’.pic-box’); let pic = document.querySelectorAll(’.pic-box > li’); //由于獲取的不是動態的 所以之后的克隆 并不會使這個變量發生改變 let point = document.querySelector(’.point’); let leftbtn = document.querySelector(’.left-btn’); let rightbtn = document.querySelector(’.right-btn’); let carouselindex = 0; //通過for循環 生成小圓點 并將圓點添加到ul里 for (let i = 0; i < pic.length; i ++) { let pointli = document.createElement(’li’); pointli.classList.add(i); point.appendChild(pointli); } //給第一個小圓點默認添加active point.children[0].classList.add(’active’); //克隆第一個圖片 深度 let kelon = picbox.children[0].cloneNode(true); picbox.appendChild(kelon); //將圖片添加到最后位置 //獲取所以圓點 let pointli = document.getElementsByClassName(’point’)[0].getElementsByTagName(’li’); //輪播方法 function carousel(index) { let distance = (-index * pic[0].offsetWidth); //計算行走的距離 圖片的index值乘以圖片的大小 animove(picbox,distance,10); //調用運動函數 for (let i = 0; i < pointli.length; i ++) { //for循環移除每個小點的選中狀態 pointli[i].classList.remove(’active’); } if (index != pic.length) { //如果不等于pic的長度 就執行 pointli[index].classList.add(’active’); } else { //如果索引值為3 說明此時圖片為克隆的圖 而圓點的最大索引值為2 將第一個圓點設置為active即可正常顯示圓點狀態 point.children[0].classList.add(’active’); } } Array.prototype.forEach.call(pointli,function (item,index) { //給每個圓點添加點擊事件 item.addEventListener(’click’,function () { carouselindex = index; //將點擊的索引值賦值給輪播索引全局變量 carousel(carouselindex); }) }); rightbtn.addEventListener(’click’,function () { //右邊點擊事件 carouselindex ++; //每次點擊全局輪播索引增加 if (carouselindex > pic.length) { //如果索引大于圖片數量 由于數量大小獲取的是靜態的 所以長度不會因為克隆變化而變化 picbox.style.left = '0px'; //如果大于索引說明此時要離開克隆的那張圖 此時迅速將left值設置為0 carouselindex = 1; //然后將索引設置為1 } carousel(carouselindex); //這時候就在left為0的位置 過渡到索引1的位置 實現無縫輪播的效果 }); leftbtn.addEventListener(’click’,function () { //左邊點擊事件 carouselindex --; //減減 if (carouselindex < 0) { //如果索引值小于0 carouselindex = 2; //將索引值設置為2 picbox.style.left = '-3678px'; //將位置迅速變換為第四張圖的位置(克隆的圖) } carousel(carouselindex); //由克隆的圖過渡到索引為2的圖(第三張圖)})

精彩專題分享:jQuery圖片輪播 JavaScript圖片輪播 Bootstrap圖片輪播

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

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 蜂蜜瓶-玻璃瓶-玻璃瓶厂-玻璃瓶生产厂家-徐州贵邦玻璃制品有限公司 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 首页 - 军军小站|张军博客| 稳尚教育加盟-打造高考志愿填报平台_新高考志愿填报加盟_学业生涯规划加盟 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 塑钢课桌椅、学生课桌椅、课桌椅厂家-学仕教育设备首页 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 丹佛斯变频器-丹佛斯压力开关-变送器-广州市风华机电设备有限公司 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 陕西华春网络科技股份有限公司| 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 电动打包机_气动打包机_钢带捆扎机_废纸打包机_手动捆扎机 | 螺纹三通快插接头-弯通快插接头-宁波舜驰气动科技有限公司 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 上海办公室装修,办公楼装修设计,办公空间设计,企业展厅设计_写艺装饰公司 | 带锯机|木工带锯机圆木推台锯|跑车带锯机|河北茂业机械制造有限公司| | 吨袋包装机|吨包秤|吨包机|集装袋包装机-烟台华恩科技 | LED显示屏_LED屏方案设计精准报价专业安装丨四川诺显科技 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 南京技嘉环保科技有限公司-杀菌除臭剂|污水|垃圾|厕所|橡胶厂|化工厂|铸造厂除臭剂 | 无锡不干胶标签,卷筒标签,无锡瑞彩包装材料有限公司 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 浩方智通 - 防关联浏览器 - 跨境电商浏览器 - 云雀浏览器 | 东莞注册公司-代办营业执照-东莞公司注册代理记账-极刻财税 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 |