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 相关文章推荐
js客户端快捷键管理类的较完整实现和应用
Jun 08 Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 Javascript
javascript几个易错点记录
Nov 26 Javascript
JavaScript实现打字效果的方法
Jul 10 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 Javascript
学习JavaScript设计模式之单例模式
Jan 19 Javascript
AngularJs解决跨域问题案例详解(简单方法)
May 19 Javascript
angularJS Provider、factory、service详解及实例代码
Sep 21 Javascript
Javascript实现时间倒计时效果
Jul 15 Javascript
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
详解如何修改 node_modules 里的文件
May 22 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+javascript制作带提示的验证码源码分享
2014/05/28 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
项目实践之javascript技巧
2007/12/06 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
python3实现点餐系统
2019/01/24 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
python解析多层json操作示例
2019/12/30 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
护士自我鉴定
2013/10/23 职场文书
大学专科生推荐信范文
2013/11/23 职场文书
会计找工作求职信范文
2013/12/09 职场文书
门诊手术室工作制度
2014/01/30 职场文书
原材料检验岗位职责
2014/03/15 职场文书
意向书范文
2014/03/31 职场文书
建筑工地文明标语
2014/10/09 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android