第一次尝试自己写轮播图

其实嗯,对于前端我与很多很多想说的话,但是看着种种最后却不知道说什么了,既然这样那就什么都不要说

第一次尝试自己写轮播图,对于初学前端的我来说我感觉我晚了很久了

为什么要模仿写一份出来呢,我也不知道,做个纪念吧

html代码页面

 7 <!DOCTYPE html>
 8 <html>
 9     <head>
10         <meta charset="UTF-8">
11         <title></title>
12         <link rel="stylesheet" type="text/css" href="css/Carousel_XM.css"/>
13         <script src="js/Carousel_XM.js" type="text/javascript" charset="utf-8"></script>
14     </head>
15     <body>
16         <div class="contern" id="contern">
17             <!--image-->
18             <!--当你从最后一张图切换回第一张图时,有很大空白,利用两张辅助图来填补这个空白。 19  这里补充下无缝滚动,直接看代码,复制最后一张图片放置第一张图片前,同时复制第一张图片放置最后一张图片的后面。 20  并且,将第一张图片辅助图(实际上是实际显示的第5张图片隐藏起来,故设置style="left: -600px;")-->
21             <div class="list" id="list" style="left: -600px;">
22                 <ul>
23                     <li><img src="img/img-4.jpg" alt="" /></li>
24                     
25                     <li><img src="img/img-1.jpg" alt="" /></li>
26                     <li><img src="img/img-2.jpg" alt="" /></li>
27                     <li><img src="img/img-3.jpg" alt="" /></li>
28                     <li><img src="img/img-4.jpg" alt="" /></li>
29                     
30                     <li><img src="img/img-1.jpg" alt="" /></li>
31                 </ul>
32             </div>
33             <!--button-->
34             <div class="buttons" id="buttons">
35                 <ul>
36                     <li index=1 id="on" class="on"></li>
37                     <li index=2 ></li>
38                     <li index=3 ></li>
39                     <li index=4 ></li>
40                 </ul>
41             </div>
42             <!--left right button-->
43             <a href="javascript:;" class="prev arrow" id="prev">&lt;</a>
44             <a href="javascript:;" class="next arrow" id="next">&gt;</a>
45         </div>
46     </body>
47 </html>

 

css代码页面

 1 *{  2  margin: 0;padding: 0;  3  text-decoration: none;  4 }  5 li{  6  list-style-type: none;  7 }  8 body{  9  padding: 100px; 10 } 11 /*隐藏其他的图片*/ 12 .contern{ 13  width: 600px;height: 400px; 14  border: 1px solid red; 15  position: relative; 16  overflow: hidden; 17 } 18 /*使用定位显示第二张图片*/ 19 .contern .list{ 20  width: 3600px;height: 400px; 21  position: absolute; 22 } 23 .contern .list ul{ 24  width: 3600px;height: 400px; 25 } 26 .contern ul li{ 27  width:600px;height: 400px; 28  float: left; 29 } 30 .contern ul li img{ 31  width: 600px;height: 400px; 32 } 33 /*按钮*/ 34 .buttons { 35  width: 100px;height: 10px; 36  position: absolute; 37  bottom: 10px; 38  left: 40%; 39  z-index: 2; 40 } 41 .buttons ul li { 42  width: 10px;height: 10px; 43  float: left; 44  margin-left: 10px; 45  border-radius:10px; 46  background-color: white; 47 } 48 .buttons ul .on { 49  background-color: red; 50 } 51 /*左右*/ 52 .arrow{ 53  width: 50px ; 54  height: 70px; 55  position: absolute; 56  top: 180px; 57  /*left: 0px;*/ 58  z-index: 2; 59  font-size: 50px; 60  background-color: red; 61  color: white; 62  display: block; 63 } 64 .next{ 65  right: 0px; 66 }

 

js代码的模块

//按钮手动切换效果
 window.onload=function(){ var list=document.getElementById("list"); var prev=document.getElementById("prev"); var next=document.getElementById("next"); var contern=document.getElementById("contern") //getElementsByTagName指定标签合
    var buttons=document.getElementById("buttons").getElementsByTagName("li"); var index=1
    var timer; function animates(a){ // //获取的是style.left,是相对左边获取距离,所以第一张图后style.left都为负值,
        //且style.left获取的是字符串,需要用parseInt()取整转化为数字。
        var newlift=parseInt(list.style.left)+a; list.style.left=newlift+'px'; //偏移量判断
        if(newlift>-600){ list.style.left=-2400+'px'; } if(newlift<-2400){ list.style.left=-600+'px'; } } //小圆圈跟随
    function buttonShow(){ //清除样式
    for (var i=0;i<buttons.length;i++ ){ if(buttons[i].className=='on'){ buttons[i].className=''; } } buttons[index-1].className='on'; } //点击圆圈
    for(var i=0;i<buttons.length;i++){ //立即执行函数
        (function(i){ buttons[i].onclick=function(){ var chilckindex=parseInt(this.getAttribute('index')); var offset=600*(index-chilckindex); animates(offset); index=chilckindex; buttonShow(); } })(i) } //两个按钮
    prev.onclick=function(){ index-=1; if(index<1){ index=4; } buttonShow(); animates(600); } next.onclick=function(){ index+=1; if(index>4){ index=1; } buttonShow(); animates(-600); } //定时器自动播放
 play(); //停止
    contern.onmouseover=stop; contern.onmouseout=play; } //自动播放 //对于定时器,有必要说明一下setInterval()跟setTimeout的区别了。 //简单来说,setInterval()执行多次,setTimeout()只执行一次。
function play(){ timer=setInterval(function (){ next.onclick(); },1500) } //鼠标悬停
function stop(){ clearInterval(timer); }

 

其实很就简单,只是想给自己做个时间轴,看看自己都学了什么

转载于:https://my.oschina.net/u/3347197/blog/1490030

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值