JavaScript实现简单图片轮播效果


Posted in Javascript onAugust 21, 2017

本文实例为大家分享了js实现简单图片轮播的具体代码,最终实现效果图

JavaScript实现简单图片轮播效果

代码块

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
     <style>
    * {
      margin: 0;
      padding: 0
    }

    ul {
      list-style: none
    }

    img {
      vertical-align: top
    }

    .box {
      width: 490px;
      height: 170px;
      margin: 100px auto;
      padding: 5px;
      border: 1px solid #ccc;
    }

    .inner {
      width: 490px;
      height: 170px;
      background-color: pink;
      overflow: hidden;
      position: relative;
    }

    .inner ul {
      width: 1000%;
      position: absolute;
      top: 0;
      left: 0;
    }

    .inner li {
      float: left;
    }

    .square {
      position: absolute;
      right: 10px;
      bottom: 10px;
    }

    .square span {
      display: inline-block;
      width: 16px;
      height: 16px;
      background-color: #fff;
      text-align: center;
      line-height: 16px;
      cursor: pointer;
    }

    .square span.current {
      background-color: orangered;
      color: #fff;
    }
  </style>
  </head>
  <body>
    <div class="box" id="box">
      <div class="inner">
        <ul>
          <li><a href="#"><img src="images/01.jpg" /></a></li>
          <li><a href="#"><img src="images/02.jpg" /></a></li>
          <li><a href="#"><img src="images/03.jpg" /></a></li>
          <li><a href="#"><img src="images/04.jpg" /></a></li>
          <li><a href="#"><img src="images/05.jpg" /></a></li>
        </ul>
        <div class="square">
          <span class="current">1</span>
          <span>2</span>
          <span>3</span>
          <span>4</span>
          <span>5</span>
        </div>
      </div>
    </div>


  <script type="text/javascript">
    //鼠标经过按钮 按钮排他
    var box = document.getElementById("box");
    var inner = box.children[0];      //获取box下的第一个元素,也就是inner
    var ul = inner.children[0];       //获取inner下的ul
    var squareList = inner.children[1];   //获取inner下的第二个元素
    var squares = squareList.children;   //获取所有的按钮
    var imgWidth = inner.offsetWidth;
//   alert(imgWidth);
    //给每个按钮注册鼠标经过事件
    for(var i=0; i<squares.length; i++){
      squares[i].index = i;      //把索引保存在自定义属性中
      squares[i].onmouseover = function(){  //鼠标经过事件
        //排他 干掉所有人 
        for(var j=0; j<squares.length; j++){
          squares[j].className = "";
        }
        //留下我自己
        this.className = "current";
        //以动画的方式把ul移动到指定的位置
        //目标 和当前按钮索引有关,和图片宽度有关 而且是负数
        var target = -this.index * imgWidth;  //获取到索引
        animate(ul,target);
      }
    }


    function animate(obj, target) {
      clearInterval(obj.timer);
      obj.timer = setInterval(function () {
        var step = 20;
        var step = obj.offsetLeft < target ? step : -step;
        if (Math.abs(obj.offsetLeft - target) > Math.abs(step)) {
          obj.style.left = obj.offsetLeft + step + "px";
        } else {
          obj.style.left = target + "px";
          clearInterval(obj.timer);
        }
      }, 15)
    }


  </script>



  </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
实现点击列表弹出列表索引的两种方式
Mar 08 Javascript
目前流行的JavaScript库的介绍及对比
Sep 29 Javascript
解析prototype,JQuery中跳出each循环的方法
Dec 12 Javascript
浅谈Javascript线程及定时机制
Jul 02 Javascript
jQuery网页选项卡插件rTabs用法实例分析
Aug 26 Javascript
AngularJS ng-blur 指令详解及简单实例
Jul 30 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
Nov 28 Javascript
Vue组件实例间的直接访问实现代码
Aug 20 Javascript
react koa rematch 如何打造一套服务端渲染架子
Jun 26 Javascript
element-ui 中使用upload多文件上传只请求一次接口
Jul 19 Javascript
js属性对象的hasOwnProperty方法的使用
Feb 05 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 #Javascript
webpack使用 babel-loader 转换 ES6代码示例
Aug 21 #Javascript
JavaScript创建对象的七种方式全面总结
Aug 21 #Javascript
webpack处理 css\less\sass 样式的方法
Aug 21 #Javascript
Vue中建立全局引用或者全局命令的方法
Aug 21 #Javascript
JS实现身份证输入框的输入效果
Aug 21 #Javascript
Vue自定义指令使用方法详解
Aug 21 #Javascript
You might like
php版微信自定义回复功能示例
2016/12/05 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
Python原始字符串(raw strings)用法实例
2014/10/13 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
Python初学者常见错误详解
2019/07/02 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
关于Django Models CharField 参数说明
2020/03/31 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
IT工程师岗位职责
2014/07/04 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
成本会计岗位职责
2015/02/03 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python