原生js轮播图

Bertha 。 2022-05-28 12:21 353阅读 0赞
  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style> * { margin: 0; padding: 0; } .box1 { margin: 100px auto; width: 670px; height: 320px; /*border:1px solid red;*/ position: relative; } .box1 ul li { list-style: none; width: 670px; height: 320px; /*display: none;*/ position:absolute; opacity:0; } .box1 ul li.cur1{ opacity:1; filter:alpha(opacity=0); } .box1 ul li img { width: 670px; height: 320px; } .box2 { position: absolute; width: 100%; top: 50%; margin-top: -27px; left: 0; cursor: pointer; z-index: 3; } .box2 .left { float: left; width: 55px; height: 55px; background: url(images/slide-btnL.png); } .box2 .right { float: right; width: 55px; height: 55px; background: url(images/slide-btnR.png); } .box1 ol { position:absolute; left:50%; margin-left: -68px; bottom: 10px; width: 135px; } .box1 ol li { list-style: none; float: left; width: 7px; height: 7px; border-radius: 6px; background: url(images/ico.png) no-repeat -138px -133px; margin: 0 10px; cursor: pointer; } .box1 ol li.cur2 { background: url(images/ico.png) no-repeat -125px -133px; } </style>
  7. </head>
  8. <body>
  9. <div class="box1" id="box1">
  10. <ul>
  11. <li class="cur1"><a href="#"><img src="images/aaa.jpg" alt=""/></a></li>
  12. <li><a href="#"><img src="images/bbb.jpg" alt=""/></a></li>
  13. <li><a href="#"><img src="images/ccc.jpg" alt=""/></a></li>
  14. <li><a href="#"><img src="images/ddd.jpg" alt=""/></a></li>
  15. <li><a href="#"><img src="images/eee.jpg" alt=""/></a></li>
  16. </ul>
  17. <div class="box2">
  18. <span class="left"></span>
  19. <span class="right"></span>
  20. </div>
  21. <ol>
  22. <li class="cur2"></li>
  23. <li></li>
  24. <li></li>
  25. <li></li>
  26. <li></li>
  27. </ol>
  28. </div>
  29. <script src="js/animate.js"></script>
  30. <script> // 1/获取元素 var box1 = document.getElementById("box1"); var ullis = box1.children[0].children; var spans = box1.children[1]; var leftArr=spans.children[0]; var rightArr=spans.children[1]; var ollis = box1.children[2].children; //事件监听 var count=0; var timer=null; for (var i = 0; i < ollis.length; i++) { ollis[i].index=i; ollis[i].onclick= function () { for(var i = 0; i < ollis.length; i++){ ollis[i].className=""; animate(ullis[i],{ "opacity":0}) } ollis[this.index].className="cur2"; count=this.index animate(ullis[count],{ "opacity":1}) } } rightArr.onclick=function (){ if(ullis[count].isanimate) return; animate(ullis[count],{ "opacity":0}); count++; if(count>=ullis.length){ count=0; } for (var i = 0; i < ullis.length; i++) { ollis[i].className = ""; } ollis[count].className = "cur2"; animate(ullis[count],{ "opacity":1}); } leftArr.onclick=function (){ if(ullis[count].isanimate) return; animate(ullis[count],{ "opacity":0}); count--; if(count<0){ count=ullis.length-1; } for (var i = 0; i < ullis.length; i++) { ollis[i].className = ""; } ollis[count].className = "cur2"; animate(ullis[count],{ "opacity":1}); } box1.onmouseover=function(){ clearInterval(timer); } box1.onmouseout=function(){ autoMove(); } autoMove() function autoMove(){ clearInterval(timer); timer=setInterval(function(){ rightArr.click(); },1500) } </script>
  31. </body>
  32. </html>
  33. /** * Created by yoyo on 2017-02-16. */
  34. function animate(tag,obj,fn){
  35. clearInterval(tag.timer);
  36. tag.isanimate=true;
  37. tag.timer=setInterval(function () {
  38. var flag=true;
  39. for(var k in obj){
  40. if(k=="opacity"){
  41. var target=obj[k]*100;
  42. var leader=getStyle(tag,k)*100||0;
  43. var step=(target-leader)/20;
  44. step=step > 0 ?Math.ceil(step): Math.floor(step);
  45. leader=leader+step;
  46. tag.style[k]=leader/100;
  47. tag.style.filter="alpha(opacity=" + leader + ")";
  48. }else if(k=="zIndex"){
  49. target.style.zIndex=obj[k];
  50. }else{
  51. var target=obj[k];
  52. var leader=getStyle(tag,k);
  53. var step=(target-leader)/10;
  54. step=step > 0 ?Math.ceil(step): Math.floor(step);
  55. leader=leader+step;
  56. tag.style[k]=leader+"px";
  57. }
  58. if(target!=leader){
  59. flag=false
  60. }
  61. }
  62. if(flag){
  63. clearInterval(tag.timer);
  64. tag.isanimate=false;
  65. fn&&fn();
  66. }
  67. },40)
  68. }
  69. function getStyle(tag,attr){
  70. if(tag.currentStyle){
  71. return tag.currentStyle[attr];
  72. }else{
  73. return getComputedStyle(tag, null)[attr];
  74. }
  75. }

发表评论

表情:
评论列表 (有 0 条评论,353人围观)

还没有评论,来说两句吧...

相关阅读

    相关 原生js层叠

    前言: 已经一个月没有怎么更博了,一直在学习一些其他得。之前在网上看到一个层叠样式得轮播图,也是看过一个博主得内容以后自己又理清楚了思路才写出来。 原文出处:https:

    相关 原生js实现

            很多很多网站经常会用到一个特效,那就是轮播图,对于日新月异的前端技术来说其实就是一个框架一个接口的事,但轮播的原理是什么?用最原始的javascript来写又是

    相关 原生js实现

    轮播图基本上是前端所必须面临的一个功能。而且在网上可以找到各种各样的插件或者写法。 但是我个人觉得还是写一下比较好。这里用到的是原生JS、CSS3相结合的写法。 对IE 8

    相关 原生js实现

    原生js实现轮播图  很多网站上都有轮播图,但却很难找到一个系统讲解的,因此这里做一个简单的介绍,希望大家都能有所收获,如果有哪些不正确的地方,希望大家可以指出。  [