昨天写的神逻辑,今天终于解决,经过大家的商讨,终于研究出来一套简单的代码!!!

js代码如下:

 <script>
     window.onload = function() {
         var oWrap = document.getElementById("wrap");
         var oBox = document.getElementById("box");
         var aBox = oBox.getElementsByTagName("li");
         var aBtn = document.getElementById("btn").getElementsByTagName("li");
         var oPrev = document.getElementById("prev");
         var oNext = document.getElementById("next");
         var iNow = 0;
         var timer = null;

         oBox.innerHTML += oBox.innerHTML;
         oBox.style.width = aBox[0].offsetWidth * aBox.length + "px";

         function tab(){
             for(var i=0;i<aBtn.length;i++){
                 aBtn[i].className = "";
             }
             move(oBox,{left:-aBox[0].offsetWidth*iNow});
             //判断iNow是否大于红色圆扭得个数,若大于则需减去按钮的个数
             if(iNow > aBtn.length-1){  //next中的情况,主要出现的是oBox后面的li
                 aBtn[iNow-aBtn.length].className = "active";
             }else{  //prev中的情况,主要出现的是oBox前面的li
                 aBtn[iNow].className = "active";
             }
         }

         //next,当循环到最后一张图片时,返回到前面与它相同的那张图片
         function next(){
             iNow++;
             if(iNow >aBox.length - 1){
                 oBox.style.left = -oBox.offsetWidth/2 +aBox[0].offsetWidth + "px";
                 iNow = aBtn.length;
             }
             tab();
         }

         //prev,当循环到第一张图片时,返回到后面与它相同的那张图片
         oPrev.onclick = function(){
             iNow--;
             if(iNow <0){
                 oBox.style.left = -oBox.offsetWidth/2 + "px";
                 iNow = aBtn.length - 1;
             }
             tab();
         }

         oNext.onclick = next;

         timer = setInterval(next,2000);
         oWrap.onmouseout = function(){
             clearInterval(timer);
             timer = setInterval(next,2000);
         }
         oWrap.onmouseover = function(){
             clearInterval(timer);
         }
     }
 </script>

今天的代码要简洁很多,逻辑相对昨天的也清晰不少,多种尝试,总会发现新的方法!!!

最新文章

  1. Android 通用流行框架
  2. jquery取框架当前的url
  3. 驳 GarbageMan 的《一个超复杂的简介递归》——对延迟计算的实验和思考
  4. Scau 10327 Biggest Square
  5. Climbing Stairs - Print Path
  6. laravel框架总结(一) -- 请求和响应
  7. 71. Simplify Path
  8. SRF之页面
  9. log4net使用的一点心得
  10. SQL Server Reporting Services 自定义数据处理扩展DPE(Data Processing Extension)
  11. Browser Link: Failed to deserialize JSON in Browser Link call
  12. C语言版推箱子
  13. 简介CentOS与 Ubuntu的不同
  14. 2017 年的 人生 hard 模式终于结束了,2018年回归初心
  15. JavaScript 散列表(HashTable)
  16. css:a:visited限制
  17. JDBC复习1
  18. 第一份offer
  19. python 浅析格式化输出和深浅copy
  20. 关掉 ubuntu bug 报告功能

热门文章

  1. PythonS12-day4学习笔记
  2. pdf生成器
  3. 前端一:走进HTML
  4. (进阶篇)PHP+Mysql+jQuery找回密码
  5. web开发实战--图片裁剪和上传
  6. CSS实现垂直居中的5种方法
  7. JSP代码加固
  8. Unix系统小知识(转)
  9. 用JS控制video暂停再播放
  10. 第一次在linux上登录博客