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的获取mouse坐标插件的实现代码
Apr 01 Javascript
类似php的js数组的in_array函数自定义方法
Dec 27 Javascript
js中的内部属性与delete操作符介绍
Aug 10 Javascript
js原型链与继承解析(初体验)
May 09 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
Feb 13 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
详解Angular操作cookies方法
Jun 01 Javascript
在JS循环中使用async/await的方法
Oct 12 Javascript
javascript防抖函数debounce详解
Jun 11 Javascript
Vue仿微信app页面跳转动画效果
Aug 21 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页面消耗内存过大的处理办法
2013/03/18 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
Jquery 的扩展方法总结
2011/10/01 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
单位消防安全制度
2014/01/12 职场文书
初婚初育证明
2014/01/14 职场文书
服务员岗位职责
2014/01/29 职场文书
八年级语文教学反思
2016/03/03 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
教你nginx跳转配置的四种方式
2022/07/07 Servers