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 相关文章推荐
在线游戏大家来找茬II
Sep 30 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
Jan 15 Javascript
jQuery实现长文字部分显示代码
May 13 Javascript
IE与FireFox的JavaScript兼容问题解决办法
Dec 31 Javascript
浅谈jQuery中setInterval()方法
Jul 07 Javascript
js实现的二分查找算法实例
Jan 21 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
Mar 21 Javascript
原生JS实现匀速图片轮播动画
Oct 18 Javascript
Angular 表单控件示例代码
Jun 26 Javascript
AngularJS遍历获取数组元素的方法示例
Nov 11 Javascript
VUE动态生成word的实现
Jul 26 Javascript
详解vue 组件的实现原理
Nov 12 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+DBM的同学录程序(2)
2006/10/09 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
python利用不到一百行代码实现一个小siri
2017/03/02 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
django富文本编辑器的实现示例
2019/04/10 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
什么是makefile? 如何编写makefile?
2012/08/08 面试题
大专生自我评价
2014/01/28 职场文书
优秀家长事迹材料
2014/05/17 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
2015年党员个人自我评价
2015/03/03 职场文书
python爬虫selenium模块详解
2021/03/30 Python
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
go 实现简易端口扫描的示例
2021/05/22 Golang
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫
使用Python拟合函数曲线
2022/04/14 Python
Java数据结构之堆(优先队列)
2022/05/20 Java/Android
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL