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中判断对象是否为空的三种实现方法
Dec 23 Javascript
node.js中的buffer.write方法使用说明
Dec 10 Javascript
javascript原始值和对象引用实例分析
Apr 25 Javascript
JQuery中DOM实现事件移除的方法
Jun 13 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
Webpack实现按需打包Lodash的几种方法详解
May 08 Javascript
node.js实现微信JS-API封装接口的示例代码
Sep 06 Javascript
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
Mar 17 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
Jan 26 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 preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
php实现的用户查询类实例
2015/06/18 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
2019/07/03 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
简单说明Python中的装饰器的用法
2015/04/24 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
Linux下python3.7.0安装教程
2018/07/30 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
DELPHI面试题研发笔试试卷
2015/11/08 面试题
冰淇淋开店创业计划书
2014/02/01 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
参赛口号
2014/06/16 职场文书
小学教师岗位职责
2015/04/02 职场文书
校运会通讯稿
2015/07/18 职场文书
中学校园广播稿
2015/08/18 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript