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

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

JavaScript仿京東輪播圖效果

瀏覽:179日期:2022-06-19 11:55:52

本文實例為大家分享了JavaScript實現京東輪播圖效果展示的具體代碼,供大家參考,具體內容如下

做了一個仿京東的輪播圖,當然沒有人家官網的精美啦。

JavaScript仿京東輪播圖效果

主要技術點:

每隔3秒自動切換圖片;鼠標移入圖片自動暫停切換,鼠標移出則繼續;點擊左右方向按鈕手動切換圖片;鼠標移到灰色圓點,顯示對應的圖片,并加亮顯示。

HTML代碼:

<body> <h1>輪播圖展示</h1> <div id='did'> <!-- 圖片 --> <div onmouseover='doStop()' onmouseout='doStart()'> <img src='http://www.hdgsjgj.cn/bcjs/1.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/2.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/3.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/4.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/5.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/6.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/7.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/8.jpg'> </div> <!-- 左右按鈕 --> <div id='btn-div'> <div onclick='doLeftClick()'> <h3> < </h3> </div> <div onclick='doRightClick()'> <h3> > </h3> </div> </div> <!-- 圓點 --> <div id='cir-div'> <div onmouseover='doMove(1)'></div> <div onmouseover='doMove(2)'></div> <div onmouseover='doMove(3)'></div> <div onmouseover='doMove(4)'></div> <div onmouseover='doMove(5)'></div> <div onmouseover='doMove(6)'></div> <div onmouseover='doMove(7)'></div> <div onmouseover='doMove(8)'></div> </div> </div></body>

CSS代碼:

<style> * { margin: 0px; padding: 0px; } body { background-color: rgb(255, 249, 249); } h1 { text-align: center; padding-top: 40px; color: rgba(250, 54, 129, 0.562); } #did { position: relative; width: 590px; height: 470px; margin: 30px auto; } #img-div { position: absolute; } #img-div img { width: 590px; display: none; cursor: pointer; z-index: -1; } /* 這兩段可不加 */ /* 顯示第一張圖片 */ #img-div img:first-child { display: block; } /* 點亮第一個圓點 */ #cir-div div:first-child { background: #fff; } #cir-div { position: absolute; /* 相對于圖片的位置 */ left: 40px; bottom: 25px; } /* 下方圓點 */ #cir-div div { width: 8px; height: 8px; float: left; /* 50%時為圓形 */ border-radius: 50%; margin-right: 6px; border: 1px solid rgba(0, 0, 0, .05); background: rgba(255, 255, 255, .4); } #left-btn { position: absolute; /* 相對于圖片的位置 */ top: 45%; /* 左半圓按鈕 */ width: 27px; height: 38px; background: rgba(119, 119, 119, 0.5); border-radius: 0 20px 20px 0; /* 動畫效果,放在變化前,當鼠標移動上面時,會緩慢變色 */ transition: background-color 0.3s ease-out; } #right-btn { position: absolute; /* 相對于圖片的位置 */ top: 45%; right: 0px; /* 右半圓按鈕 */ width: 27px; height: 38px; background-color: rgba(119, 119, 119, 0.5); border-radius: 20px 0 0 20px; /* 動畫效果,放在變化前,當鼠標移動上面時,會緩慢變色 */ transition: background-color 0.3s ease-out; } #left-btn:hover { background-color: rgba(32, 32, 32, 0.5); cursor: pointer; } #right-btn:hover { background-color: rgba(32, 32, 32, 0.5); cursor: pointer; } #left-btn h3 { color: #fff; margin-top: 4px; margin-left: 2px; } #right-btn h3 { color: #fff; margin-top: 4px; margin-left: 8px; }</style>

JavaScript代碼:

<script> //顯示第幾張圖片 var count = 1; //時間 var time = null; //圖片列表 var imglist = document.getElementById('img-div').getElementsByTagName('img'); //圓點列表 var cirlist = document.getElementById('cir-div').getElementsByTagName('div'); //展示對應的圖片和點亮對應的圓點 function show(x) { for (var i = 0; i < imglist.length; i++) { if (x == i + 1) { //顯示圖片 imglist[i].style.display = 'block'; //圓點點亮 cirlist[i].style.backgroundColor = '#fff'; } else { imglist[i].style.display = 'none'; cirlist[i].style.background = 'rgba(255, 255, 255, .4)'; } } } //定時輪播圖片(每3秒切換一張圖片) function doStart() { if (time == null) { time = setInterval(function () { count++; show(count); if (count >= 8) { count = 0; } }, 3000); } } //停止輪播圖片 function doStop() { if (time != null) { clearInterval(time); time = null; } } //鼠標移到圓點上圖片會相應切換,并且之后會點亮下一個圓點 而不是未移到圓點前的下一個圓點 function doMove(x) { show(x); //將位置賦給count,圖片就會從該圖片的下一張開始切換 count = x; //當鼠標移到最后一個圓點時,需要將count變為0,不然執行doStart()里的count++,count就會變為9,越界了 if (count == 8) { count = 0; } } /* 對于i 、count和show(x)里x的關系: i = [0,7]; x = [1,8]; count = [1,8]; */ //點擊左邊按鈕向左切換圖片 function doLeftClick() { for (var i = 0; i < imglist.length; i++) { //判斷當前在展示的是哪張圖片 if (imglist[i].style.display == 'block') { if (i == 0) { show(8); // 忘掉這句后,break會直接退出,當左按鈕按到最右的圓點,會直接忽略圓點1,直接跳到圓點2 count = 0; //保證切換是3秒鐘 doStop(); doStart(); break; } show(i); count = i; //保證切換是3秒鐘 doStop(); doStart(); break; } } } //點擊右邊按鈕向右切換圖片 function doRightClick() { for (var i = 0; i < imglist.length; i++) { //判斷當前在展示的是哪張圖片 if (imglist[i].style.display == 'block') { if (i == 7) { show(1); count = 1; doStop(); doStart(); break; } show(i + 2); count = i + 2; //就不會出現切換到沒有圖片的情況 if (count >= 8) { count = 0; } doStop(); doStart(); break; } } } doStart(); //默認打開頁面顯示的是第一張圖片 //(不加,會出現第1個圓點亮也就是剛打開頁面時,左按鈕沒反應) doMove(1);</script>

遇到的難點:

雖說輪播圖看起來還蠻簡單的,但實現起來還挺多問題的。不過我發現的都解決掉了。

圓點與按鈕放置在圖片上 自動切換圖片了但對應的圓點沒有點亮 鼠標移到圓點上圖片切換了,但下一個自動點亮的圓點卻是未移到圓點前的下一個 第1個圓點亮也就是剛打開頁面時,左按鈕沒反應 當左按鈕按到最右的圓點,會直接忽略圓點1,直接跳到圓點2 在最后一個圓點時點擊右按鈕時,會出現切換到沒有圖片的情況 點左按鈕切換時間大概2秒,點右按鈕切換時間大概5秒,時間并沒有達到標準的3秒

不過我都解決啦!

最大的感觸就是剛解決掉一個bug正沾沾自喜時,又來一個bug。

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

標簽: 京東
相關文章:
主站蜘蛛池模板: 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 喷砂机厂家_自动喷砂机生产_新瑞自动化喷砂除锈设备 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | Maneurop/美优乐压缩机,活塞压缩机,型号规格,技术参数,尺寸图片,价格经销商 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 传动滚筒,改向滚筒-淄博建凯机械科技有限公司 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 自清洗过滤器_全自动过滤器_全自动反冲洗过滤器_量子过滤器-滑漮滴 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 医养体检包_公卫随访箱_慢病随访包_家签随访包_随访一体机-济南易享医疗科技有限公司 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 万烁建筑设计院-建筑设计公司加盟,设计院加盟分公司,市政设计加盟 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | 上海洗地机-洗地机厂家-全自动洗地机-手推式洗地机-上海滢皓洗地机 | 爱德华真空泵油/罗茨泵维修,爱发科-比其尔产品供应东莞/杭州/上海等全国各地 | 电子海图系统-电梯检验系统-智慧供热系统开发-商品房预售资金监管系统 | 逗网红-抖音网红-快手网红-各大平台网红物品导航| 乐考网-银行从业_基金从业资格考试_初级/中级会计报名时间_中级经济师 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 木材烘干机,木炭烘干机,纸管/佛香烘干设备-河南蓝天机械制造有限公司 | 螺旋绞龙叶片,螺旋输送机厂家,山东螺旋输送机-淄博长江机械制造有限公司 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 钢衬四氟管道_钢衬四氟直管_聚四氟乙烯衬里管件_聚四氟乙烯衬里管道-沧州汇霖管道科技有限公司 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 电缆接头_防水接头_电缆防水接头_防水电缆接头_上海闵彬 | 精密模具-双色注塑模具加工-深圳铭洋宇通 | 钢衬四氟管道_钢衬四氟直管_聚四氟乙烯衬里管件_聚四氟乙烯衬里管道-沧州汇霖管道科技有限公司 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 |