zoukankan      html  css  js  c++  java
  • 轮播图

      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4     <meta charset="UTF-8">
      5     <title></title>
      6 </head>
      7 
      8 <script type="text/javascript">
      9 function getStyle(obj,name)
     10 {
     11   if(window.getComputedStyle)
     12   return getComputedStyle(obj,null)[name];
     13   else
     14   return obj.currrntStyle[name];
     15 }
     16 
     17 function move(obj,attr,target,speed,callback)
     18 {
     19   clearInterval(obj.timer);
     20   var current = parseInt(getStyle(obj,attr));
     21   if(current>target)
     22   speed=-speed;
     23   obj.timer=setInterval(function(){
     24   var oldValue=parseInt(getStyle(obj,attr));
     25   var newValue=oldValue+speed;
     26   if(speed<0&&newValue<target || speed>0&&newValue>target)
     27   newValue=target;
     28   obj.style[attr]=newValue+"px";
     29   if(newValue==target){
     30   clearInterval(obj.timer);
     31   callback && callback();
     32   }
     33   },10);
     34 }
     35 
     36 window.onload=function(){
     37 var imgList=document.getElementById("imgList");
     38 var imgArr=document.getElementsByTagName("img");
     39 //设置imgList的宽度
     40 imgList.style.width=520*imgArr.length+"px";
     41 //设置导航按钮居中
     42 var navDiv=document.getElementById("navDiv");
     43 //获取outer
     44 var outer=document.getElementById("outer");
     45 
     46 var allA=document.getElementsByTagName("a");
     47 //设置navDiv的left值
     48 navDiv.style.paddingLeft=(outer.offsetWidth-allA.length*25+10)/2+"px";
     49 //默认显示图片索引
     50 var index=0;
     51 allA[index].style.backgroundColor="yellow";
     52 
     53 
     54 //点击超链接切换到指定的图片
     55 for(var i=0;i<allA.length;i++){
     56 //添加num属性
     57 allA[i].num=i;
     58 allA[i].onclick=function(){
     59 //关闭自动切换的定时器
     60 clearInterval(timer);
     61 //获取点击超链接的索引
     62 index=this.num;
     63 //切换图片
     64 //imgList.style.left=-index*520+"px";
     65 //修改选中的a
     66 setA();
     67 move(imgList,"left",-520*index,10,function(){});
     68 //动画执行完毕,开启自动切换
     69 autoChange();
     70 };
     71 }
     72 //自动切换图片
     73 autoChange();
     74 
     75 //创建一个方法用来设置选中的a
     76 function setA(){
     77 //判断当前索引是否是最后一张图片
     78 if(index>=imgArr.length-1){
     79 index=0;
     80 //此时显示的最后一张图片,和第一张图片是一样的,通过CSS将最后一张切换成第一张
     81 imgList.style.left=0+"px";
     82 }
     83 //遍历所有的a,并将它们的背景颜色设置为红色
     84 for(var i=0;i<allA.length;i++){
     85 /*
     86 allA[i].style.backgroundColor="red";设置内联样式,因为优先级比hover高
     87 所以会覆盖hover。当设置为""时,样式表#navDiv里的background-color:red;默认效果生效,
     88 这样就不会覆盖了。
     89 */
     90 allA[i].style.backgroundColor="";
     91 //将选中的a设置为黄色
     92 allA[index].style.backgroundColor="yellow";
     93 }
     94 };
     95 //定义一个自动切换的定时器的标识
     96 var timer;
     97 //创建一个函数,用来开启自动切换图片
     98 function autoChange(){
     99 //开启一个定时器,用来定时去切换图片
    100 timer=setInterval(function(){
    101 //使索引自增
    102 index++;
    103 //判断index的值
    104 index%=imgArr.length;
    105 move(imgList,"left",-520*index,20,function(){
    106 //修改导航按钮
    107 setA();
    108 });
    109 },2000);
    110 };
    111 };
    112   </script>
    113 <style type="text/css">
    114 *{
    115 padding:0px;
    116 margin:0px auto;
    117 }
    118 #outer{
    119 width:520px;
    120 height:330px;
    121 padding:10px 0px;
    122 background-color:purple;
    123 position:relative;
    124 overflow:hidden;
    125 }
    126 #imgList{
    127 list-style:none;
    128 /* 给子元素开启绝对定位,父元素开启相对定位
    129  绝对定位的元素的位置相对于最近的已定位祖先元素,
    130  如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
    131  */
    132 position:absolute;
    133 left:-520px;
    134 }
    135 li{
    136 margin:0px 10px;
    137 float:left;
    138 }
    139 /* 设置导航按钮 */
    140 #navDiv{
    141 //开启绝对定位
    142 position:absolute;
    143 }
    144 #navDiv a{
    145 /* 内联元素设置宽高无用 */
    146 float:left;
    147 width:15px;
    148 height:15px;
    149 background-color:red;
    150 margin:310px 5px;
    151 
    152 /* 设置透明 */
    153 opacity:0.5;
    154 /* 兼容IE8透明 */
    155 filter:alpha(opacity=50);
    156 }
    157 /* 设置鼠标移入的样式 */
    158 #navDiv a:hover{
    159 background-color:skyblue;
    160 bottom:10px;
    161 }
    162 
    163 </style>
    164 <body>
    165 <!--
    166 创建一个外部的div,来作为大的容器
    167 -->
    168 <div id="outer" class="clearfix">
    169     <!--
    170     创建一个ul,用于放置图片
    171     -->
    172     <ul id="imgList">
    173         <li><img src="1.jpg"width="500px"height="330px"/></li>
    174         <li><img src="2.png"width="500px"height="330px"/></li>
    175         <li><img src="3.jpg"width="500px"height="330px"/></li>
    176         <li><img src="4.png"width="500px"height="330px"/></li>
    177         <li><img src="5.png"width="500px"height="330px"/></li>
    178         <li><img src="1.jpg"width="500px"height="330px"/></li>
    179     </ul>
    180     <!-- 创建导航按钮 -->
    181     <div id="navDiv">
    182         <a href="javascript:;"></a>
    183         <a href="javascript:;"></a>
    184         <a href="javascript:;"></a>
    185         <a href="javascript:;"></a>
    186         <a href="javascript:;"></a>
    187     </div>
    188 </div>
    189 </body>
    190 </html>

  • 相关阅读:
    python生成随机密码
    python计算md5值
    python---连接MySQL第五页
    python---连接MySQL第四页
    梯度下降(Gradient Descent)小结
    矩阵的线性代数意义
    矩阵的意义
    偏导数与全导数的关系 以及 偏微分与全微分的关系
    mysql-blog
    python及numpy,pandas易混淆的点
  • 原文地址:https://www.cnblogs.com/zuiaimiusi/p/11270501.html
Copyright © 2011-2022 走看看