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 相关文章推荐
用于自动添加Digg This!按钮的JavaScript
Dec 23 Javascript
javascript学习随笔(使用window和frame)的技巧
Mar 08 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
Apr 15 Javascript
防止文件缓存的js代码
Jan 10 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
Aug 02 Javascript
jquery append()方法与html()方法的区别及使用介绍
Aug 01 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
Jan 04 Javascript
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
Feb 20 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
Mar 26 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
Apr 13 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下封装较好的数字分页方法
2010/11/23 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
php实现表单多按钮提交action的处理方法
2015/10/24 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
JS实现页面数据懒加载
2020/02/13 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python 2与Python 3版本和编码的对比
2017/02/14 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
python requests post多层字典的方法
2018/12/27 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
python else语句在循环中的运用详解
2020/07/06 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
铭万公司.net面试题笔试题
2014/07/20 面试题
团组织推优材料
2014/12/29 职场文书
学校食堂管理制度
2015/08/04 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
Mysql文件存储图文详解
2021/06/01 MySQL
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
利用Python实时获取steam特惠游戏数据
2022/06/25 Python