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计算时间差函数
Oct 28 Javascript
分享经典的JavaScript开发技巧
Nov 21 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
Nov 24 Javascript
JavaScript中关联原型链属性特性
Feb 13 Javascript
判断横屏竖屏(三种)
Feb 13 Javascript
js实现音频控制进度条功能
Apr 01 Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 Javascript
js+canvas实现滑动拼图验证码功能
Mar 26 Javascript
element-ui中select组件绑定值改变,触发change事件方法
Aug 24 Javascript
js字符串倒序的实例代码
Nov 30 Javascript
Element Notification通知的实现示例
Jul 27 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
Jul 27 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批量删除数据
2007/01/18 PHP
php递归列出所有文件和目录的代码
2008/09/10 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
js 单引号 传递方法
2009/06/22 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
Python 打印中文字符的三种方法
2018/08/14 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
python logging通过json文件配置的步骤
2020/04/27 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
面试后的英文感谢信
2014/02/01 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
入党群众意见范文
2015/06/02 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
Python多线程 Queue 模块常见用法
2021/07/04 Python