zoukankan      html  css  js  c++  java
  • 超实用的JavaScript代码段 Item3 --图片轮播效果

    图片轮播效果

    图片尺寸 统一设置成:490*170px;

    一、页面加载、获取整个容器、所有放数字索引的li及放图片列表的ul、定义放定时器的变量、存放当前索引的变量index

    二、添加定时器,每隔2秒钟index递增一次、调用一次切换图片函数

    提示:

    1、 index不能一直无限制的递增下去,需做判断
    
    2、调用切换图片函数时需将递增之后的index作为参数传过去
    

    三、定义图片切换函数

    提示:

      1.遍历所有放数字索引的li,将每个li上的类去掉。
      2.根据传递过来的index值找到对应的li给它添加类设为当前高亮显示。
      3. 根据传递过来的index值计算放图片的ul的top值
      4. 改变index的值,让其等于传递过来的参数值
    

    注意:放图片的ul的top值=-index*单张图片的高度(所有图片必须等高)

    四、鼠标划过整个容器时,图片停止切换,离开继续

    提示:

    1.  鼠标滑过整个容器时清除定时器
    2.  鼠标离开时继续执行定时器,切换至下一张图片
    3. 
    

    五、遍历所有放数字的li,且给他们添加索引、鼠标滑过时切换至对应的图片

    1. 鼠标滑过时调用图片切换函数,将滑过的li的索引传过去
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
      *{margin:0;
        padding:0;
        list-style:none;}
      .wrap{height:170px;
            width:490px;
            margin:60px auto;
            overflow: hidden;
            position: relative;
            margin:100px auto;}
      .wrap ul{position:absolute;} 
      .wrap ul li{height:170px;}
      .wrap ol{position:absolute;
               right:5px;
               bottom:10px;}
      .wrap ol li{height:20px; width: 20px;
                  background:#ccc;
                  border:solid 1px #666;
                  margin-left:5px;
                  color:#000;
                  float:left;
                  line-height:center;
                  text-align:center;
                  cursor:pointer;}
      .wrap ol .on{background:#E97305;
                   color:#fff;}
    
      </style>
      <script type="text/javascript">
      window.onload=function(){
        var wrap=document.getElementById('wrap'),
            pic=document.getElementById('pic').getElementsByTagName("li"),
            list=document.getElementById('list').getElementsByTagName('li'),
            index=0,
            timer=null;
    
          // 定义并调用自动播放函数
        timer = setInterval(autoPlay, 2000);
    
         // 鼠标划过整个容器时停止自动播放
        wrap.onmouseover = function () {
          clearInterval(timer);
        }
    
         // 鼠标离开整个容器时继续播放至下一张
        wrap.onmouseout = function () {
          timer = setInterval(autoPlay, 2000);
        }
         // 遍历所有数字导航实现划过切换至对应的图片
        for (var i = 0; i < list.length; i++) {
          list[i].onmouseover = function () {
            clearInterval(timer);
            index = this.innerText - 1;
            changePic(index);
          };
        };
    
        function autoPlay () {
          if (++index >= pic.length) index = 0;
          changePic(index);
        }
    
          // 定义图片切换函数
        function changePic (curIndex) {
          for (var i = 0; i < pic.length; ++i) {
            pic[i].style.display = "none";
            list[i].className = "";
          }
          pic[curIndex].style.display = "block";
          list[curIndex].className = "on";
        }
    
       };
    
      </script> 
    </head>
    <body>
      <div class="wrap" id='wrap'>
        <ul id="pic">
          <li><img src="1.jpg" alt=""></li>
          <li><img src="2.jpg" alt=""></li>
          <li><img src="3.jpg" alt=""></li>
          <li><img src="4.jpg" alt=""></li>
          <li><img src="5.jpg" alt=""></li>    
        </ul>
        <ol id="list">
          <li class="on">1</li>
          <li>2</li>
          <li>3</li>
          <li>4</li>
          <li>5</li>
        </ol>
      </div>
    </body>
    </html>

    实例效果:
    这里写图片描述

    这里写图片描述

    版权声明:本文为小平果原创文章,转载请注明:http://blog.csdn.net/i10630226

  • 相关阅读:
    Android开发:系统自动实现开机启动
    Android高手进阶教程【转】
    android 各种控件颜色值
    Android开发博客国内最大的移动开发博客eoe移动开发者社区
    异步图片加载工具类
    Android中shape的使用
    Android的asset/res资源框架结构
    winddows 运行指令 (2)
    使用activeMQ实现jms
    ActiveMQ在C#中的应用
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4948181.html
Copyright © 2011-2022 走看看