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

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

JavaScript 實現輪播圖特效的示例

瀏覽:91日期:2023-10-08 17:36:00

效果展示

1.頁面截圖

JavaScript 實現輪播圖特效的示例

2.相關效果

JavaScript 實現輪播圖特效的示例

html 頁面

從微信讀書上找了幾張書籍封面來做輪播的圖片。

index.html

<body> <div id='container'> <div class='big_pic_div'> <div class='prev'></div> <div class='next'></div> <a href='javascript:;' rel='external nofollow' rel='external nofollow' class='mark_left'></a> <a href='javascript:;' rel='external nofollow' rel='external nofollow' class='mark_right'></a> <div style='z-index: 1;'><img src='http://www.hdgsjgj.cn/bcjs/img/1.jpg' alt=''></div> <div class='big_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/2.jpg' alt=''></div> <div class='big_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/3.jpg' alt=''></div> <div class='big_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/4.jpg' alt=''></div> <div class='big_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/5.jpg' alt=''></div> <div class='big_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/6.jpg' alt=''></div> </div> <div class='small_pic_div'> <div style='filter: opacity(100); opacity: 1;'><img src='http://www.hdgsjgj.cn/bcjs/img/1.jpg' alt=''></div> <div class='small_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/2.jpg' alt=''></div> <div class='small_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/3.jpg' alt=''></div> <div class='small_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/4.jpg' alt=''></div> <div class='small_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/5.jpg' alt=''></div> <div class='small_pic'><img src='http://www.hdgsjgj.cn/bcjs/img/6.jpg' alt=''></div> </div> </div></body>

css 樣式

grid 布局的 gap 不兼容 IE,惹不起。

style.css

body { margin: 0; padding: 0; background: skyblue;}#container { position: relative; overflow: hidden; width: 350px; height: 390px; margin: 50px auto 0; padding: 0 15px; background: goldenrod; box-shadow: 2px 1px 5px 1px #666;}.mark_left { position: absolute; left: 0; z-index: 3000; width: 65px; height: 360px;}.mark_right { position: absolute; right: 0; z-index: 3000; width: 65px; height: 360px;}.prev { position: absolute; top: 150px; left: 5px; z-index: 3001; width: 60px; height: 60px; background: url(img/btn.gif) olivedrab; /* transform: translateY(50%); */ /* alpha 兼容IE8及以下的IE瀏覽器 */ filter: alpha(opacity=0); opacity: 0;}.next { position: absolute; top: 120px; right: 5px; z-index: 3001; width: 60px; height: 60px; background: url(img/btn.gif) olivedrab; background-position-y: 60px; transform: translateY(50%); filter: alpha(opacity=0); opacity: 0;}.big_pic_div { position: relative; width: 250px; height: 360px; padding: 15px 0;}.big_pic { position: absolute; /* height 從 0 到 360px 下滑 */ overflow: hidden; height: 360px; box-shadow: 1px 1px 2px #777;}.small_pic_div { display: grid; grid-template: repeat(6, 110px) / 80px; gap: 15px; position: absolute; top: 0; left: 273px; padding: 15px 0;}.small_pic { height: 110px; filter: alpha(opacity = 60); opacity: 0.6;}.small_pic img { width: 80px; height: 100%;}

JavaScript 實現

多物體運動框架move.js

// 獲取樣式function getStyle(obj, name) { if (obj.currentStyle) { // IE... return obj.currentStyle[name]; } else { // Chrome... return getComputedStyle(obj, false)[name]; }}function startMove(obj, attr, target) { clearInterval(obj.timer); obj.timer = setInterval(function () { var cur = 0; // 透明度 if (attr == ’opacity’) { cur = Math.round(parseFloat(getStyle(obj, ’opacity’)) * 100); } else { cur = parseInt(getStyle(obj, attr)); } // 緩沖運動,速度和距離成正比 var speed = 0; speed = (target - cur) / 6; // 1px 是最小的,1.9px 會被當做 1px;得把速度取整,不然并未真正到達目標值 target speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); if (cur == target) { clearInterval(obj.timer); } else { // 透明度沒有單位,單獨考慮 if (attr == ’opacity’) { obj.style.filter = ’alpha(opacity = ’ + (cur + speed) + ’)’; obj.style.opacity = (cur + speed) / 100; } else { obj.style[attr] = cur + speed + ’px’; } } }, 30);}

輪播圖功能實現

window.onload = function () { var markLeft = document.getElementsByClassName(’mark_left’)[0]; var markRight = document.getElementsByClassName(’mark_right’)[0]; var btnPrev = document.getElementsByClassName(’prev’)[0]; var btnNext = document.getElementsByClassName(’next’)[0]; var smallPicDiv = document.getElementsByClassName(’small_pic_div’)[0]; var smallPic = document.getElementsByClassName(’small_pic’); var bigPic = document.getElementsByClassName(’big_pic’); var nowZIndex = 2; var now = 0; var container = document.getElementById(’container’); // 左右按鈕透明度設置 btnPrev.onmouseover = markLeft.onmouseover = function () { startMove(btnPrev, ’opacity’, 100); }; btnPrev.onmouseout = markLeft.onmouseout = function () { startMove(btnPrev, ’opacity’, 0); }; btnNext.onmouseover = markRight.onmouseover = function () { startMove(btnNext, ’opacity’, 100); }; btnNext.onmouseout = markRight.onmouseout = function () { startMove(btnNext, ’opacity’, 0); }; // 點擊小圖時,大圖自動切換 for (var i = 0; i < smallPic.length; i++) { smallPic[i].index = i; smallPic[i].onclick = function () { if (now == this.index) return; // 使用 now 來表示當前選擇的小圖,當前選中的小圖再次點擊時不會讓大圖下滑 now = this.index; bigPic[this.index].style.zIndex = nowZIndex++; bigPic[this.index].style.height = 0; startMove(bigPic[this.index], ’height’, 360); // 點擊后其他小圖變透明,當前選中的為不透明 for (var i = 0; i < smallPic.length; i++) { startMove(smallPic[i], ’opacity’, 60); } startMove(smallPic[this.index], ’opacity’, 100); }; // 鼠標移動到小圖上時,淡入淡出 smallPic[i].onmouseover = function () { startMove(this, ’opacity’, 100); }; smallPic[i].onmouseout = function () { if (now != this.index) { startMove(this, ’opacity’, 60); } }; } // tab 函數:當前選中圖片不透明;圖片下滑;小圖區域的滾動 function tab() { bigPic[now].style.zIndex = nowZIndex++; for (var i = 0; i < smallPic.length; i++) { startMove(smallPic[i], ’opacity’, 60); } startMove(smallPic[now], ’opacity’, 100); bigPic[now].style.height = 0; startMove(bigPic[now], ’height’, 360); if (now == 0) { startMove(smallPicDiv, ’top’, 0); } else if (now == smallPic.length - 1) { startMove(smallPicDiv, ’top’, -(now - 2) * (smallPic[0].offsetHeight + 15)); } else { startMove(smallPicDiv, ’top’, -(now - 1) * (smallPic[0].offsetHeight + 15)); } } // 左右按鈕點擊 btnPrev.onclick = function () { now--; if (now == smallPic.length) { now = smallPic.length - 1; } else if (now < 0) { now = smallPic.length - 1; // return; } tab(); }; btnNext.onclick = function () { now++; if (now == smallPic.length) { now = 0; } tab(); }; var timer = setInterval(btnNext.onclick, 3000); container.onmouseover = function () { clearInterval(timer); }; container.onmouseout = function () { timer = setInterval(btnNext.onclick, 3000); };};

以上就是JavaScript 實現輪播圖特效的詳細內容,更多關于JavaScript 輪播圖的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 整车VOC采样环境舱-甲醛VOC预处理舱-多舱法VOC检测环境仓-上海科绿特科技仪器有限公司 | 高低温老化试验机-步入式/低温恒温恒湿试验机-百科 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 高博医疗集团上海阿特蒙医院| 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | 氢氧化钙设备_厂家-淄博工贸有限公司 | 粒米特测控技术(上海)有限公司-测功机_减速机测试台_电机测试台 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 间苯二酚,间苯二酚厂家-淄博双和化工| 陕西自考报名_陕西自学考试网 | 挤出机_橡胶挤出机_塑料挤出机_胶片冷却机-河北伟源橡塑设备有限公司 | 电动葫芦|环链电动葫芦-北京凌鹰名优起重葫芦 | POS机官网 - 拉卡拉POS机免费办理|官网在线申请入口 | 喷漆房_废气处理设备-湖北天地鑫环保设备有限公司 | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 走心机厂家,数控走心机-台州博城智能科技有限公司 | 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏 | 全球化工设备网—化工设备,化工机械,制药设备,环保设备的专业网络市场。 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 楼梯定制_楼梯设计施工厂家_楼梯扶手安装制作-北京凌步楼梯 | 塑钢件_塑钢门窗配件_塑钢配件厂家-文安县启泰金属制品有限公司 深圳南财多媒体有限公司介绍 | 手持式3d激光扫描仪-便携式三维立体扫描仪-北京福禄克斯 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | HV全空气系统_杭州暖通公司—杭州斯培尔冷暖设备有限公司 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 |