| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 | 
							- <!DOCTYPE html>
 
- <html lang="en">
 
- <head>
 
-   <meta charset="UTF-8">
 
-   <meta http-equiv="X-UA-Compatible" content="IE=edge">
 
-   <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
-   <title>Document</title>
 
-   <link rel="stylesheet" href="./icon/iconfont.css">
 
-   <style>
 
-     * {
 
-       margin: 0;
 
-       padding: 0;
 
-     }
 
-     ul {
 
-       list-style: none;
 
-     }
 
-     #container {
 
-       width: 590px;
 
-       height: 470px;
 
-       margin: 100px auto;
 
-       position: relative;
 
-     }
 
-     .selected {
 
-       display: none;
 
-     }
 
-     .choice {
 
-       display: block;
 
-     }
 
-     #btns {
 
-       position: absolute;
 
-       right: 10px;
 
-       bottom: 10px;
 
-     }
 
-     #btns li {
 
-       width: 20px;
 
-       height: 20px;
 
-       border-radius: 10px;
 
-       background: aqua;
 
-       text-align: center;
 
-       line-height: 20px;
 
-       color: white;
 
-       float: left;
 
-       margin-right: 5px;
 
-     }
 
-     #btns .select {
 
-       background: red;
 
-     }
 
-     #next,
 
-     #prev {
 
-       width: 40px;
 
-       height: 40px;
 
-       position: absolute;
 
-       top: 215px;
 
-       opacity: 0.4;
 
-       display: none;
 
-     }
 
-     #next {
 
-       right: 0;
 
-     }
 
-     #next span {
 
-       font-size: 40px;
 
-     }
 
-     #prev span {
 
-       font-size: 40px;
 
-     }
 
-   </style>
 
- </head>
 
- <body>
 
-   <div id="container">
 
-     <div id="img-box">
 
-       <img class="selected choice" src="image/1.jpg" alt="">
 
-       <img class="selected" src="image/2.jpg" alt="">
 
-       <img class="selected" src="image/3.jpg" alt="">
 
-       <img class="selected" src="image/4.jpg" alt="">
 
-       <img class="selected" src="image/5.jpg" alt="">
 
-     </div>
 
-     <ul id="btns">
 
-       <li class="select">1</li>
 
-       <li>2</li>
 
-       <li>3</li>
 
-       <li>4</li>
 
-       <li>5</li>
 
-     </ul>
 
-     <div id="next">
 
-       <span class="iconfont icon-next"></span>
 
-     </div>
 
-     <div id="prev">
 
-       <span class="iconfont icon-prev"></span>
 
-     </div>
 
-   </div>
 
-   <script>
 
-     var btns = document.getElementsByTagName('li') //类数组
 
-     var imgs = document.getElementsByClassName('selected')
 
-     var next = document.getElementById('next')
 
-     var prev = document.getElementById('prev')
 
-     var container = document.getElementById('container')
 
-     //定义全局索引变量
 
-     iNow = 0
 
-     //想要给类数组绑定点击事件   我们需要利用循环
 
-     for (var i = 0; i < btns.length; i++) {
 
-       //创建一个属性 去把索引的值提取出来 
 
-       //局部变量
 
-       btns[i].index = i
 
-       //btns[0].index = 0
 
-       //btns[1].index = 1
 
-       //给数组里面每一项都绑定点击事件
 
-       btns[i].onclick = function () {
 
-         // 一上来清除所有的样式  恢复到没有设置的时候
 
-         for (var k = 0; k < btns.length; k++) {
 
-           //按钮恢复
 
-           btns[k].className = ''
 
-           imgs[k].className = 'selected'
 
-         }
 
-         //谁的点击事件就是谁  
 
-         // btns[0,1,2,3,4,5].className = 'select'
 
-         //this = btns[点击的那个索引]
 
-         this.className = 'select'
 
-         //从上面换算一下   this.index = btns[点击的那个索引].index 
 
-         //例子: 点击索引为2的按钮   this.index = btns[2].index  ---> btns[2].index = 2 
 
-         imgs[this.index].className = 'selected choice'
 
-         //赋值为当前的索引
 
-         iNow = this.index
 
-       }
 
-     }
 
-     //下一个点击事件
 
-     next.onclick = function () {
 
-       console.log(iNow)
 
-       //当前的索引+1 ----->下一个
 
-       iNow++;
 
-       //当我们图片  索引+= 5  发现数组里面没有这么多个  变为空白 提醒报错
 
-       //需要判断  如果 超出了  索引的最大值  变为索引为0 的图片
 
-       if (iNow > btns.length - 1) {
 
-         iNow = 0
 
-       }
 
-       // for (var k = 0; k < btns.length; k++) {
 
-       //   btns[k].className = ''
 
-       //   imgs[k].className = 'selected'
 
-       // }
 
-       // btns[iNow].className = 'select'
 
-       // imgs[iNow].className = 'selected choice'
 
-       //把方法提取出去  避免代码重复
 
-       myFun(iNow)
 
-     }
 
-     //上一个点击事件
 
-     prev.onclick = function () {
 
-       iNow--;
 
-       if (iNow < 0) {
 
-         iNow = btns.length - 1
 
-       }
 
-       myFun(iNow)
 
-     }
 
-     //鼠标划入事件
 
-     container.onmousemove = function () {
 
-       next.style.display = 'block'
 
-       prev.style.display = 'block'
 
-       clearInterval(timer)
 
-     }
 
-     //鼠标划出事件
 
-     container.onmouseout = function () {
 
-       next.style.display = 'none'
 
-       prev.style.display = 'none'
 
-       //划出的时候 需要重新设定定时器  
 
-       //不要var  var就相当于在这个函数里面 又创建了一个  定时器 同名  会同时触发
 
-       //重新唤醒之前的定时器就可以
 
-       timer = setInterval(function () {
 
-         next.onclick()
 
-       }, 1000)
 
-     }
 
-     //定时器
 
-     //如果在这个页面里面 想要实现 定时下一个  就相当于 触发了 下一个的事件
 
-     var timer = setInterval(function () {
 
-       next.onclick()
 
-     }, 1000)
 
-     var myFun = function (xx) {
 
-       for (var k = 0; k < btns.length; k++) {
 
-         btns[k].className = ''
 
-         imgs[k].className = 'selected'
 
-       }
 
-       //变得只是传进来的索引
 
-       btns[xx].className = 'select'
 
-       imgs[xx].className = 'selected choice'
 
-     }
 
-   </script>
 
- </body>
 
- </html>
 
 
  |