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的固定表格头部的代码(IE6,7,8测试通过)
May 18 Javascript
jquery制作图片时钟特效
Mar 30 Javascript
Javascript编程中几种继承方式比较分析
Nov 28 Javascript
jQuery删除节点用法示例(remove方法)
Sep 08 Javascript
node.js发送邮件email的方法详解
Jan 06 Javascript
canvas实现流星雨的背景效果
Jan 13 Javascript
详解webpack+angular2开发环境搭建
Jun 28 Javascript
深入理解React中何时使用箭头函数
Aug 23 Javascript
vue项目中v-model父子组件通信的实现详解
Dec 10 Javascript
Angular服务Request异步请求的实例讲解
Aug 13 Javascript
使用electron将vue-cli项目打包成exe的方法
Sep 29 Javascript
Vue创建头部组件示例代码详解
Oct 23 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
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
深入理解Promise.all
2018/08/08 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
python中的字典详细介绍
2014/09/18 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Python转换时间的图文方法
2019/07/01 Python
python requests使用socks5的例子
2019/07/25 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
python脚本第一行如何写
2020/08/30 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
最新党员的自我评价分享
2013/11/04 职场文书
企业管理部经理岗位职责
2013/12/24 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
班主任对学生的评语
2014/04/26 职场文书
趣味运动会赞词
2015/07/22 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书