小李飞刀资源网 Design By www.iooab.com
话不多说,请看代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>无缝轮播图-原生js封装</title> <link rel="shortcut icon" href="../public/image/favicon.ico" type="images/x-icon"/> <link rel="icon" href="../public/image/favicon.png" type="images/png"/> <link rel="stylesheet" type="text/css" href="../public/style/cssreset-min.css"> <link rel="stylesheet" type="text/css" href="../public/style/common.css"> <style type="text/css"> /*公共*/ html{ height:100%; } body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td { margin: 0; padding: 0 } body{ position: relative; min-height:100%; font-size:14px; font-family: Tahoma, Verdana,"Microsoft Yahei"; color:#333; } a{ text-decoration: none; color:#333; } .header{ width: 960px; padding-top: 15px; margin: 0 auto; line-height: 30px; text-align: right; } .header a{ margin: 0 5px; } .main{ width:960px; margin: 50px auto 0; } .code{ border:1px dashed #e2e2e2; padding:10px 5px; margin-bottom:25px; } pre { font-family: "Microsoft Yahei",Arial,Helvetica; white-space: pre-wrap; /*css-3*/ white-space: -moz-pre-wrap; /*Mozilla,since1999*/ white-space: -pre-wrap; /*Opera4-6*/ white-space: -o-pre-wrap; /*Opera7*/ word-wrap: break-word; /*InternetExplorer5.5+*/ } .example{ padding-top:40px; margin-bottom:90px; } .example .call{ padding:18px 5px; background:#f0f5f8; } .example h2{ padding-top:20px; margin-bottom:7px; } .example table { width:100%; table-layout:fixed; border-collapse: collapse; border-spacing: 0; border: 1px solid #cee1ee; border-left: 0; } .example thead { border-bottom: 1px solid #cee1ee; background-color: #e3eef8; } .example tr { line-height: 24px; font-size: 13px; } .example tr:nth-child(2n) { background-color: #f0f5f8; } .example tr th,.example tr td { border-left: 1px solid #cee1ee; word-break: break-all; word-wrap: break-word; padding:0 10px; font-weight: normal; } .example tr th { color: #555; padding-top: 2px; padding-bottom: 2px; text-align: left; } /*公共*/ .bannerha-container{ width: 800px; height: 300px; margin: 20px auto; overflow: hidden; position: relative; } .bannerha-wrapper{ width: 100%; height: 100%; position: absolute; display: -webkit-box; display: box; } .bannerha-slide{ background: #ccc; list-style: none; width: 100%; height: 100%; text-align: center; font-size: 18px; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; -webkit-justify-content: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; -webkit-align-items: center; align-items: center; } .bannerha-pagination{ position: absolute; text-align: center; z-index: 10; bottom: 10px; left: 0; width: 100%; } .bannerha-pagination-bullet{ width: 8px; height: 8px; display: inline-block; border-radius: 100%; background: #fff; opacity: .5; margin: 0 4px; } .bannerha-pagination-bullet-active{ opacity: 1; background: #ff0; } .bannerha-button{ width: 100px; height: 100%; position: absolute; top: 0; background-color: #333; z-index: 1; cursor: pointer; filter: alpha(opacity:20); opacity: 0.2; -webkit-transition: all .2s ease-in; -moz-transition: all .2s ease-in; -ms-transition: all .2s ease-in; -o-transition: all .2s ease-in; transition: all .2s ease-in; } .bannerha-button.active{ filter: alpha(opacity:60); opacity: 0.6; } .bannerha-button-prev{ left:0; } .bannerha-button-next{ right:0; } </style> <script type="text/javascript"> /*封装代码*/ (function() { var Bannerha = function(e, opts) { var self = this; var defaults = { circle: true, speeds: 20, pnBtn: true, autoPlay: true, times: 3000 } opts = opts || {}; for (var w in defaults) { if ("undefined" == typeof opts[w]) { opts[w] = defaults[w]; } } this.params = opts; this.container = r(e); if (this.container.length > 1) { var x = []; return this.container.each(function() { x.push(new Bannerha(this, opts)) }), x } this.containers = this.container[0]; this.oUl = this.container.find(".bannerha-wrapper")[0]; this.liW = this.oUl.children[0].offsetWidth; this.len = this.oUl.children.length; this.flag = true; this.num = 1; this.timer = null; this.timers = null; this.init(); } Bannerha.prototype = { init: function() { var self = this; this.clone(); if (this.params.pnBtn) { this.pnBtn(); } if (this.params.circle) { this.circle(); } if (this.params.autoPlay) { this.plays(); this.boxmove() } }, boxmove: function() { var self = this; this.container[0].addEventListener('mouseout', function(e) { self.plays(); }, false); this.container[0].addEventListener('mouseover', function(e) { self.stops(); }, false); }, plays: function() { var self = this; this.timers = setInterval(function() { self.go(-self.liW); }, self.params.times); }, stops: function() { clearInterval(this.timers) }, clone: function() { var fir = this.oUl.children[0].cloneNode(true), last = this.oUl.children[this.len - 1].cloneNode(true); this.oUl.appendChild(fir); this.oUl.insertBefore(last, this.oUl.children[0]); this.len = this.oUl.children.length; this.oUl.style.left = -this.liW + 'px'; }, pnBtn: function() { var self = this; this.container.append('<div class="bannerha-button bannerha-button-prev"></div><div class="bannerha-button bannerha-button-next"></div>'); this.container[0].addEventListener('click', function(e) { self.events(e) }, false); this.container[0].addEventListener('mouseover', function(e) { self.eventsover(e) }, false); }, circle: function() { var self = this; var pagination = document.createElement("div"); pagination.className = "bannerha-pagination"; for (var i = 0; i < self.len - 2; i++) { var btnspan = document.createElement("span"); btnspan.className = "bannerha-pagination-bullet"; pagination.appendChild(btnspan); } this.containers.appendChild(pagination); this.bullet = this.container.find(".bannerha-pagination-bullet"); this.bullet[0].classList.add("bannerha-pagination-bullet-active"); for (var i = 0; i < this.bullet.length; i++) { ! function(i) { self.bullet[i].addEventListener('click', function(e) { if (!self.flag) { return; } if (this.className.indexOf('bannerha-pagination-bullet-active') > -1) { return; } var myIndex = i - (self.num - 1); var offset = -self.liW * myIndex; self.go(offset); self.num = i + 1; self.showButton(); }, false); }(i); } }, events: function(e) { var self = this; var oSrc = e.srcElement || e.target; if (oSrc.tagName.toLowerCase() == 'div' && oSrc.className.indexOf('bannerha-button-prev') > -1) { if (!this.flag) { return; } self.go(this.liW); if (self.params.circle) { self.showButton(); } } if (oSrc.tagName.toLowerCase() == 'div' && oSrc.className.indexOf('bannerha-button-next') > -1) { if (!this.flag) { return; } self.go(-this.liW); if (self.params.circle) { self.showButton(); } } }, eventsover: function(e) { var self = this; var oSrc = e.srcElement || e.target; if (oSrc.className.indexOf('bannerha-button') > -1) { oSrc.classList.add("active") oSrc.addEventListener('mouseout', function(e) { oSrc.classList.remove("active"); }, false); } }, showButton: function() { var self = this; var num = this.num - 1; for (var i = 0; i < this.bullet.length; i++) { this.bullet[i].classList.remove("bannerha-pagination-bullet-active"); } this.bullet[num].classList.add("bannerha-pagination-bullet-active"); }, go: function(offset) { var self = this; if (self.flag) { self.flag = false; if (offset < 0) { self.num++; if (self.num > self.len - 2) { self.num = 1; } } if (offset > 0) { self.num--; if (self.num <= 0) { self.num = self.len - 2 } } var srty = parseInt(self.oUl.style.left) + offset; if (parseInt(self.oUl.style.left) < srty || parseInt(self.oUl.style.left) > srty) { self.timer = setInterval(function() { var mernum = parseInt(self.oUl.style.left); var speed = (srty - mernum) / 10; speed = speed > 0 "undefined" == typeof e) return this; for (var a = e.split(" "), t = 0; t < a.length; t++) for (var r = 0; r < this.length; r++) this[r].classList.add(a[t]); return this }, each: function(e) { for (var a = 0; a < this.length; a++) e.call(this[a], a, this[a]); return this }, html: function(e) { if ("undefined" == typeof e) return this[0] "string" == typeof a) { var i = document.createElement("div"); for (i.innerHTML = a; i.firstChild;) this[t].appendChild(i.firstChild) } else if (a instanceof e) for (r = 0; r < a.length; r++) this[t].appendChild(a[r]); else this[t].appendChild(a); return this }, } var a = function(a, t) { var r = [], i = 0; if (a && !t && a instanceof e) { return a; } if (a) { if ("string" == typeof a) { var s, n, o = a.trim(); if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) { var l = "div"; for (0 === o.indexOf("<li") && (l = "ul"), 0 === o.indexOf("<tr") && (l = "tbody"), (0 === o.indexOf("<td") || 0 === o.indexOf("<th")) && (l = "tr"), 0 === o.indexOf("<tbody") && (l = "table"), 0 === o.indexOf("<option") && (l = "select"), n = document.createElement(l), n.innerHTML = a, i = 0; i < n.childNodes.length; i++) r.push(n.childNodes[i]) } else for (s = t || "#" !== a[0] || a.match(/[ .<>:~]/) "#")[1])], i = 0; i < s.length; i++) s[i] && r.push(s[i]) } else if (a.nodeType || a === window || a === document) { r.push(a); } else if (a.length > 0 && a[0].nodeType) { for (i = 0; i < a.length; i++) { r.push(a[i]); } } } return new e(r) }; return a; }()) window.bannerha = Bannerha; })() /*封装代码*/ </script> </head> <body> <div class="header"> <a href="https://github.com/huanghanzhilian/widget" target="_blank">项目地址</a> <a href="/widget/">返回首页</a> </div> <div class="main"> <div class="bannerha-container" id="banner1"> <ul class="bannerha-wrapper" > <li class="bannerha-slide">slide-1</li> <li class="bannerha-slide">slide-2</li> <li class="bannerha-slide">slide-3</li> <li class="bannerha-slide">slide-4</li> <li class="bannerha-slide">slide-5</li> </ul> </div> <script type="text/javascript"> new bannerha("#banner1"); </script> <div class="code"> <p> 不传参数,执行默认参数,自动轮播 </p> <p>new bannerha("#banner1");</p> </div> <div class="bannerha-container" id="banner2"> <ul class="bannerha-wrapper" > <li class="bannerha-slide">slide-1</li> <li class="bannerha-slide">slide-2</li> <li class="bannerha-slide">slide-3</li> <li class="bannerha-slide">slide-4</li> <li class="bannerha-slide">slide-5</li> </ul> </div> <script type="text/javascript"> new bannerha("#banner2",{ circle: true, speeds: 50, pnBtn: true, autoPlay: true, times: 1500 }); </script> <div class="code"> <p> 调整自动轮播速度和缓冲速度 </p> <p>new bannerha("#banner2",{ circle: true, speeds: 50, pnBtn: true, autoPlay: true, times: 1500 });</p> </div> <div class="bannerha-container" id="banner3"> <ul class="bannerha-wrapper" > <li class="bannerha-slide">slide-1</li> <li class="bannerha-slide">slide-2</li> <li class="bannerha-slide">slide-3</li> <li class="bannerha-slide">slide-4</li> <li class="bannerha-slide">slide-5</li> </ul> </div> <script type="text/javascript"> new bannerha("#banner3",{ autoPlay: false }); </script> <div class="code"> <p> 关闭自动轮播 </p> <p>new bannerha("#banner3",{ autoPlay: false });</p> </div> <div class="bannerha-container" id="banner4"> <ul class="bannerha-wrapper" > <li class="bannerha-slide">slide-1</li> <li class="bannerha-slide">slide-2</li> <li class="bannerha-slide">slide-3</li> <li class="bannerha-slide">slide-4</li> <li class="bannerha-slide">slide-5</li> </ul> </div> <script type="text/javascript"> new bannerha("#banner4",{ pnBtn: false }); </script> <div class="code"> <p> 关闭左右切换按钮 </p> <p>new bannerha("#banner4",{ pnBtn: false });</p> </div> <div class="bannerha-container" id="banner5"> <ul class="bannerha-wrapper" > <li class="bannerha-slide">slide-1</li> <li class="bannerha-slide">slide-2</li> <li class="bannerha-slide">slide-3</li> <li class="bannerha-slide">slide-4</li> <li class="bannerha-slide">slide-5</li> </ul> </div> <script type="text/javascript"> new bannerha("#banner5",{ circle: false }); </script> <div class="code"> <p> 关闭底部小按钮 </p> <p>new bannerha("#banner5",{ circle: false });</p> </div> <div class="example"> <div class="call"> <h1>调用方法:</h1> <p>new bannerha(selector,{options});</p> </div> <h2>options参数</h2> <table> <thead> <tr> <th width="150">参数</th> <th width="100">默认值</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>circle</td> <td>true</td> <td>是否生成底部圆圈按钮</td> </tr> <tr> <td>speeds</td> <td>20</td> <td>设置缓冲运动速度</td> </tr> <tr> <td>pnBtn</td> <td>true</td> <td>是否生成左右切换按钮</td> </tr> <tr> <td>autoPlay</td> <td>true</td> <td>是否自动轮播</td> </tr> <tr> <td>times</td> <td>3000</td> <td>设置自动轮播间隔时间</td> </tr> </tbody> </table> </div> </div> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
标签:
原生js,轮播
小李飞刀资源网 Design By www.iooab.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
小李飞刀资源网 Design By www.iooab.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月10日
2024年11月10日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]