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 相关文章推荐
JavaScript Event事件学习第一章 Event介绍
Feb 07 Javascript
javascript 节点遍历函数
Mar 28 Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
Aug 23 Javascript
基于jquery的代码显示区域自动拉长效果
Dec 07 Javascript
js定时器怎么写?就是在特定时间执行某段程序
Oct 11 Javascript
JavaScript中switch判断容易犯错的一个细节
Aug 27 Javascript
老生常谈onBlur事件与onfocus事件(js)
Jul 09 Javascript
JS日程管理插件FullCalendar中文说明文档
Feb 06 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
Aug 16 Javascript
vue+iview 实现可编辑表格的示例代码
Oct 31 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
Oct 28 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中call_user_func_array的作用
2013/06/07 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
php中session与cookie的比较
2015/01/27 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
浅谈django中的认证与登录
2016/10/31 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
水务局局长岗位职责
2013/11/28 职场文书
新浪微博实习心得体会
2014/01/27 职场文书
服务理念口号
2014/06/11 职场文书
自我检讨书范文
2015/01/28 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL