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 相关文章推荐
iScroll中事件点击触发两次解决方案
Mar 11 Javascript
JavaScript实现的简单烟花特效代码
Oct 20 Javascript
JavaScript时间操作之年月日星期级联操作
Jan 15 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
Jun 13 Javascript
node.js中的事件处理机制详解
Nov 26 Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 Javascript
JavaScript中transform实现数字翻页效果
Mar 08 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
Jun 07 Javascript
微信小程序常用赋值方法小结
Apr 30 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
Jun 24 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
虫族 Zerg 历史背景
2020/03/14 星际争霸
MYSQL数据库初学者使用指南
2006/11/16 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
QUnit jQuery的TDD框架
2010/11/04 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
python利用tkinter实现屏保
2019/07/30 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
奇怪的鱼:Weird Fish
2018/03/18 全球购物
佳能法国商店:Canon法国
2019/02/14 全球购物
研究生毕业鉴定
2014/01/29 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
家长通知书家长评语
2014/04/17 职场文书
法制宣传日活动总结
2014/04/29 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
个人培训总结
2015/03/05 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python