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

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

JavaScript實現原型封裝輪播圖

瀏覽:3日期:2023-06-11 17:49:19

本文實例為大家分享了JavaScript實現原型封裝輪播圖的具體代碼,供大家參考,具體內容如下

只要用dom元素調用這個方法,傳一個數組進去,里面放的是圖片的路徑。

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>Document</title> <style> * { padding: 0px; margin: 0px; list-style: none; } .leftBtn { position: absolute; width: 30px; height: 30px; color: black; background-color: cyan; top: 50%; margin-top: -15px; line-height: 30px; text-align: center; opacity: 0.6; cursor: pointer; left: 10px; } .rightBtn { position: absolute; width: 30px; height: 30px; color: black; background-color: cyan; top: 50%; margin-top: -15px; line-height: 30px; text-align: center; opacity: 0.6; cursor: pointer; right: 10px; } .slider { position: absolute; bottom: 20px; width: 100%; text-align: center; cursor: pointer; } .slider span { display: inline-block; width: 8px; height: 8px; background-color: darkgray; border-radius: 50%; margin-left: 10px; } .slider .active { background-color: #f40; } </style></head><body> <div class='div'></div> <div id='div'></div> <script> var div = document.getElementsByClassName(’div’)[0] var oDiv = document.getElementById(’div’) // var arr = [’./tp copy/decade.jpg’, ’./tp copy/decad.jpg’, ’./tp copy/tp.jpg’] HTMLDivElement.prototype.createTurnPage = function (arr) { var arr = (typeof arr != 'object') ? [arr] : arr; //確保參數總是數組 var ul = document.createElement(’ul’); ul.className = ’ul’ this.style.width = ’400px’; this.style.height = 200 + ’px’; this.style.position = ’relative’; this.style.overflow = ’hidden’ this.style.margin = ’200px auto 0px’; this.appendChild(ul); ul.style.width = (1 + arr.length) * parseInt(this.style.width) + ’px’ ul.style.height = this.style.height ul.style.position = ’absolute’ for (let i = 0; i < arr.length + 1; i++) { var li = document.createElement(’li’); var img = document.createElement(’img’); ul.appendChild(li); li.appendChild(img); li.style.width = this.style.width li.style.height = this.style.height li.style.float = ’left’ img.style.width = ’100%’ img.style.height = ’100%’ img.src = arr[i]; } var LastImg = document.createElement(’img’); var liList = document.getElementsByClassName(’ul’)[0].getElementsByTagName(’li’); LastImg.src = arr[0]; LastImg.style.width = ’100%’ LastImg.style.height = ’100%’ liList[liList.length - 1].removeChild(img) liList[liList.length - 1].appendChild(LastImg); var leftBtn = document.createElement(’div’); var rightBtn = document.createElement(’div’); var slider = document.createElement(’div’); for (let i = 0; i < arr.length; i++) { var span = document.createElement(’span’) slider.appendChild(span) } var arrSpan = slider.getElementsByTagName(’span’) this.appendChild(leftBtn) this.appendChild(rightBtn) this.appendChild(slider) slider.className = ’slider’ leftBtn.className = ’leftBtn’; leftBtn.innerHTML = ’&lt;’ rightBtn.className = ’rightBtn’; rightBtn.innerHTML = ’&gt;’ var timer = null; var lock = true var index = 0; var moveWidth = document.getElementsByTagName(’li’)[0].offsetWidth; var num = document.getElementsByTagName(’li’).length - 1; leftBtn.onclick = function () { autoMove(’right->left’) } rightBtn.onclick = function () { autoMove(’left->right’) } for (var i = 0; i < arrSpan.length; i++) { (function (myindex) { arrSpan[myindex].onclick = function () { lock = false; clearTimeout(timer) index = myindex startMove(ul, { left: -index * moveWidth }, function () { lock = true; timer = setTimeout(autoMove, 2000) spanMove(index) }) } }(i)) } function autoMove(direction) { if (lock) { lock = false clearTimeout(timer); if (!direction || direction == ’left->right’) { index++; startMove(ul, { left: ul.offsetLeft - moveWidth }, function () { if (ul.offsetLeft == - num * moveWidth) { ul.style.left = 0 + ’px’ index = 0 } spanMove(index); timer = setTimeout(autoMove, 2000) lock = true }) } else if (direction == ’right->left’) { if (ul.offsetLeft == 0) { ul.style.left = - num * moveWidth + ’px’ index = num } index--; startMove(ul, { left: ul.offsetLeft + moveWidth }, function () { timer = setTimeout(autoMove, 2000) lock = true spanMove(index) }) } } } function spanMove(index) { for (var i = 0; i < arrSpan.length; i++) { arrSpan[i].className = ’’ } arrSpan[index].className = ’active’ } timer = setTimeout(autoMove, 1500) } // div.createTurnPage(arr) oDiv.createTurnPage([’./tp copy/decade.jpg’, ’./tp copy/logo.jpg’, ’./tp copy/decad.jpg’, ’./tp copy/tp.jpg’]) function getStyle(dom, attr) { if (window.getComputedStyle) { return window.getComputedStyle(dom, null)[attr]; } else { dom.currentScript[attr]; } } function startMove(dom, attrObj, callback) { clearInterval(dom.timer); var speed = null, cur = null; dom.timer = setInterval(function () { var stop = true; for (var attr in attrObj) { if (attr == 'opacity') { cur = parseFloat(getStyle(dom, attr)) * 100; } else { cur = parseInt(getStyle(dom, attr)); } speed = (attrObj[attr] - cur) / 7; speed = speed < 0 ? Math.floor(speed) : Math.ceil(speed); if (attr == 'opacity') { dom.style.opacity = (speed + cur) / 100; } else { dom.style[attr] = speed + cur + 'px'; } if (cur != attrObj[attr]) { stop = false; } } if (stop) { clearInterval(dom.timer); typeof callback == 'function' && callback(); } }, 20); } </script></body></html>

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

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

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 稳尚教育加盟-打造高考志愿填报平台_新高考志愿填报加盟_学业生涯规划加盟 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 合肥卓创建筑装饰,专业办公室装饰、商业空间装修与设计。 | 2025黄道吉日查询、吉时查询、老黄历查询平台- 黄道吉日查询网 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 对夹式止回阀厂家,温州对夹式止回阀制造商--永嘉县润丰阀门有限公司 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 精密光学实验平台-红外粉末压片机模具-天津博君| 工业铝型材生产厂家_铝合金型材配件批发精加工定制厂商 - 上海岐易铝业 | 气动球阀_衬氟蝶阀_调节阀_电动截止阀_上海沃托阀门有限公司 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 商标转让-购买商标专业|放心的商标交易网-蜀易标商标网 | 郑州爱婴幼师学校_专业幼师培训_托育师培训_幼儿教育培训学校 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 结晶点测定仪-润滑脂滴点测定仪-大连煜烁 | 破碎机锤头_合金耐磨锤头_郑州宇耐机械工程技术有限公司 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 威实软件_软件定制开发_OA_OA办公系统_OA系统_办公自动化软件 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 起好名字_取个好名字_好名网免费取好名在线打分 | 药品冷藏箱厂家_低温冰箱_洁净工作台-济南欧莱博电子商务有限公司官网 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 江苏齐宝进出口贸易有限公司 | 芜湖厨房设备_芜湖商用厨具_芜湖厨具设备-芜湖鑫环厨具有限公司 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 体坛网_体坛+_体坛周报新闻客户端| 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 昆明化妆培训-纹绣美甲-美容美牙培训-昆明博澜培训学校 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 马尔表面粗糙度仪-MAHR-T500Hommel-Mitutoyo粗糙度仪-笃挚仪器 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 |