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

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

javascript實現移動端輪播圖

瀏覽:4日期:2023-06-13 08:17:59

本文實例為大家分享了js實現移動端輪播圖的具體代碼,供大家參考,具體內容如下

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>Document</title> <link rel='stylesheet' href='http://www.hdgsjgj.cn/bcjs/yidong.css' ></head><body> <!-- 頁頭 --> <button class='open'>打開app</button> <div style='display: flex; justify-content: center; background-color: rgb(28, 151, 141);width: 100%; height: 0.8rem;'><div style='display:inline-block; font-size: 0.4rem;'><p style='font-size: 0.55rem;'>🔆</p> </div><input type='text' style='width: 70%;background-color: rgb(190, 217, 219); font-size: 0.4rem;color: rgb(81, 82, 81);'> <input type='submit' value='🔍' style='width: 10%;font-size: 0.5rem;'></div> <div data-ride='carousel'> <!-- 輪播圖部分 --> <div class='lunbo'> <ul class='lul'> <li> <a href='http://www.hdgsjgj.cn/bcjs/14270.html'> <img src='http://www.hdgsjgj.cn/bcjs/img/1.png' alt=''> </a> </li> <li > <a href='http://www.hdgsjgj.cn/bcjs/14270.html'> <img src='http://www.hdgsjgj.cn/bcjs/img/2.png' alt=''> </a> </li> <li > <a href='http://www.hdgsjgj.cn/bcjs/14270.html'> <img src='http://www.hdgsjgj.cn/bcjs/img/3.png' alt=''> </a> </li> </ul> </div></body></html>

js:

<script src='http://www.hdgsjgj.cn/bcjs/rem.js'></script><script> //設置動態的css樣式 var lunbo =document.querySelector(’.lunbo’) var lul=document.querySelector(’.lul’) var fimg =document.querySelectorAll(’li’)[0]; var limg =document.querySelectorAll(’li’)[2];// cloneNode復制一個元素// appendChild() 方法可向節點的子節點列表的末尾添加新的子節點,再最后一張圖片后面添加第一張圖片 lul.appendChild(fimg.cloneNode(true))//在第一張圖片前面添加最后一張圖片 lul.insertBefore(limg.cloneNode(true),lul.firstChild)// 獲取lul下面全部的li var lis= lul.querySelectorAll(’li’) // 獲取li元素的數量var licount = lis.length;// 獲取輪播圖總共的寬度var lwidth = lunbo.offsetWidth;// 設置圖片盒子的寬度lul.style.width=licount*lwidth+’px’;//設置每一個li元素的樣式 給他們定義寬度 他的寬度就等于我們頁面的寬度也就是lunbo的寬度for(i=0;i<lis.length;i++){ lis[i].style.width=lwidth+’px’}//設置偏移距離lul.style.left=-lwidth+’px’// 設置自動輪播// 設置索引(設置索引為1,因為圖片已經偏移了)var index=1// 設置定時器先去封裝他,因為后面要開啟定時器,調用這個函數就行了var time;//要在外面定義time不然后面清除定時器接收不到函數//當手指滑動輪播圖過快的時候后面的輪播圖就不會顯示,因為滑動過快時過度沒有完成就不會觸發webkitTransitionEnd(監聽當元素執行完過度效果)//所以設置一個變量用來控制,(過度效果未完成不能滑動圖片)var con=true var ltime=function(){ time=setInterval(function(){index++// 設置偏移 每次偏移都是以最初的點為參照點點的,所以如果每次都便宜一個width的話圖片就不動lul.style.left=(-index*lwidth)+’px’// 添加過度效果,在最后一張跳到第一張時要清除過度效果所以要加上如果在清除過度后面添加else{ lul.style.transition=’all 1s’}的話因為有個定時器所以不能流暢執行lul.style.transition=’all 1s’setTimeout(function(){ // 判斷是否到最后一張// 當顯示為最后一幢圖片時進行操作,最后一張圖片的索引值為licount-1if(index==licount-1){ index=1;// 偏移到最開始的位置lul.style.left=(-index*lwidth)+’px’//當顯示最后一張的時候會移回去,所以要清除過度效果lul.style.transition=’none’}//如果直接清除過度效果的話最后一張就直接跳過去了,所以讓他延遲一會在進行判斷(跳轉),這就是為什么在最后一張后面要添加第一張圖片了 },1000)},2000) }ltime();//設置觸摸事件// 定義手指的坐標 分為x和yvar sx,sy,mx,my,dis;lul.addEventListener(’touchstart’,function(q){ clearInterval(time); sx=q.targetTouches[0].clientX;})lul.addEventListener(’touchmove’,function(q){ if(con==true){ mx=q.targetTouches[0].clientX; dis=mx-sx; lul.style.left=-index*lwidth+dis+’px’ // 為了使過度效果流暢 去除lul的過渡效果 lul.style.transition=’none’ } })lul.addEventListener(’touchend’,function(){ con=false; // 判斷是否切換圖片 if(Math.abs(dis)>100){//切換圖片 如果手指觸摸滑動的距離超過100進行圖片切換 if(dis>0){//如果偏移值為正數則向下一張偏移(向右滑動) index-- } else{//如果偏移值為負數則向下一張偏移(向左滑動) index++ } //設置輪播圖的最終偏移,添加過度 lul.style.left=-index*lwidth+’px’; lul.style.transition=’all 0.5s’ } else if(Math.abs(dis)>0 ){//確定用戶做出拖拽事件,點一下的話不需要做出相關操作 //設置輪播圖回彈,添加過度效果 lul.style.left=-index*lwidth+’px’; lul.style.transition=’all 0.5s’ }//執行完觸摸事件就可以從新開啟定時器了sx=0;mx=0;dis=0;ltime()})//解決輪播圖劃到第一張或者最后一張時沒有圖片//添加 webkitTransitionEnd 事件,webkitTransitionEnd事件是監聽當元素執行完過度效果 lul.addEventListener(’webkitTransitionEnd’,function(){con=trueif(index==licount-1){//當滑動到最后一個圖片時展示的是倒數第二張圖片讓圖片展示的為第一張 index=1;//index時從0開始的 lul.style.left=-index*lwidth+’px’; lul.style.transition=’none’ }else if(index==0){//當展示的時最后一張圖片時,就是第一個位置的圖片向前滑動時讓他展示最后一張圖片 index=licount-2; lul.style.left=-index*lwidth+’px’; lul.style.transition=’none’ } }) </script>

效果圖:

javascript實現移動端輪播圖

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

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 金现代信息产业股份有限公司--数字化解决方案供应商 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | 警用|治安|保安|不锈钢岗亭-售货亭价格-垃圾分类亭-移动厕所厂家-苏州灿宇建材 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | HDPE土工膜,复合土工膜,防渗膜价格,土工膜厂家-山东新路通工程材料有限公司 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 溶氧传感器-pH传感器|哈美顿(hamilton) | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 膏方加工_丸剂贴牌_膏滋代加工_湖北康瑞生物科技有限公司 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 真空上料机(一种真空输送机)-百科 | 新车测评网_网罗汽车评测资讯_汽车评测门户报道 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 重庆中专|职高|技校招生-重庆中专招生网 | 上海三信|ph计|酸度计|电导率仪-艾科仪器 | 口信网(kousing.com) - 行业资讯_行业展会_行业培训_行业资料 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 网架支座@球铰支座@钢结构支座@成品支座厂家@万向滑动支座_桥兴工程橡胶有限公司 | 粘度计,数显粘度计,指针旋转粘度计| 挤塑板-XPS挤塑板-挤塑板设备厂家[襄阳欧格] | 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 |