首先看下效果图

明确功能 1.前后切换(边界判断) 2.按键切换  3.自动轮播

css代码

<style>
* {margin:0; padding:0;}
li{list-style:none; } #div1 {width:850px; height:500px; margin:50px auto; overflow:hidden; position:relative;}
#div1 ul li{height:500px;opacity: 0;position: absolute;left: 0;top: 0;z-index: 0;transition: opacity 1.5s;}
#div1 ul li.ac{z-index: 5;opacity: 1;}
#div1 ol {position:absolute;right: 10%;bottom: 10px;z-index:6}
#div1 ol li{width: 20px;height: 20px;background: #fff;margin-left: 5px;float: left;line-height: 20px;text-align: center;cursor: pointer;}
#div1 ol li.ac{background: red;color: #fff;}
#div1>a{text-decoration: none;position: absolute;top: 50%;margin-top: -10px;height: 40px;line-height: 32px;text-align: center;width: 40px;font-size: 40px;vertical-align: middle;color: #fff;background: rgba(0,0,0,0.5);z-index:6;}
#goPrev{left: 0;}
#goNext{right: 0;}
img{width:850px; height:500px;}
</style>

body中的代码

 <div id="div1">
<ul>
<li class="ac"><a href="javascript:alert(0);"><img src="/1.jpg" /></a></li>
<li><a href="javascript:alert(1);"><img src="/2.jpg" /></a></li>
<li><a href="javascript:alert(2);"><img src="/3.jpg" /></a></li>
<li><a href="javascript:alert(3);"><img src="/4.jpg" /></a></li>
<li><a href="javascript:alert(4);"><img src="/5.jpg" /></a></li>
</ul>
<ol>
<li class="ac">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ol>
<a href="javascript:;" id="goPrev">&laquo;</a>
<a href="javascript:;" id="goNext">&raquo;</a>
</div>

js代码

 class LB{

         constructor(){

             this.div = document.querySelector('#div1'),
this.imgs = this.div.querySelectorAll('ul li'),
this.btns = this.div.querySelectorAll('ol li'),
this.goPrev = document.querySelector('#goPrev'),
this.goNext = document.querySelector('#goNext'); this.iNow = 0
this.iLast = 0
this.timer = null this.BtnsEvent()
this.goEvent()
this.gotimer() } BtnsEvent(){ Array.from(this.btns).forEach((btns,i) => { this.btns[i].onclick = () => {
this.iLast = this.iNow
this.iNow = i
this.change()
}
})
} goEvent(){ //向->切换
this.goNext.onclick = () => { this.iLast = this.iNow
this.iNow == this.btns.length-1? this.iNow=0:this.iNow++
this.change()
} //向<-切换
this.goPrev.onclick = () => { this.iLast = this.iNow
this.iNow == 0? this.iNow=this.btns.length-1:this.iNow--
this.change()
} } gotimer(){ this.timer = setInterval(this.goNext.onclick,2000) this.div.onmouseenter = () => {
clearInterval(this.timer)
} this.div.onmouseleave = () => { this.timer = setInterval(this.goNext.onclick,2000)
}
} //更改图片
change(){ this.btns[this.iLast].className = ''
this.imgs[this.iLast].className = ''
this.btns[this.iNow].className = 'ac'
this.imgs[this.iNow].className = 'ac' } } var lb =new LB('#div1')

效果已实现

最新文章

  1. C#中的泛型
  2. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 &#39;#TT&#39; 中的标识列插入显式值。 sql server 临时表
  3. Base64 字符串转图片 问题整理汇总
  4. 在网页中显示html代码
  5. jetty-如何配置虚拟主机【转】
  6. codevs4203山区建小学
  7. Ubuntu下安装PDF 文档阅读器Adobe Reader 9.5.5
  8. android 快捷技巧
  9. PHP学习2 — PHP Cookie 与 Session
  10. .net 非对称加密
  11. 移动端APP CSS Reset及注意事项CSS重置
  12. 如何写出如散文般的代码――《代码整洁之道》读书笔记(Ch1-Ch3)
  13. 为什么java中用枚举实现单例模式会更好
  14. tensorflow 经典教程及案例
  15. Linux之cat的使用
  16. 基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0
  17. ASP.NET MVC与Sql Server交互,把字典数据插入数据库
  18. JProfiler8 远程监控tomcat配置过程
  19. debian更新源时找不到公钥的解决办法
  20. echo图片延迟加载js

热门文章

  1. Python的未来发展方向
  2. 安装sublime text3 、转化为汉化版、安装SublimeREPL使得在交互条件下运行代码,设置快捷键
  3. Multiple types were found that match the controller named &#39;Auth&#39;.
  4. SharePoint 2013 Sandbox Solution
  5. ThinkPHP框架快速开发网站
  6. Spark 学习笔记之 Streaming和Kafka Direct
  7. B-概率论-贝叶斯决策
  8. windows服务器多端口Redis安装步骤
  9. LeetCode_844-Backspace String Compare
  10. bugku旋转跳跃