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 上下banner替换具体实现
Nov 14 Javascript
form表单action提交的js部分与html部分
Jan 07 Javascript
jquery 取子节点及当前节点属性值
Jul 25 Javascript
jQuery EasyUI之DataGrid使用实例详解
Jan 04 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
Dec 22 Javascript
js计算系统当前日期是星期几的方法
Jul 14 Javascript
jQuery简单实现彩色云标签效果示例
Aug 01 Javascript
jQuery多文件异步上传带进度条实例代码
Aug 16 Javascript
JavaScript 详解预编译原理
Jan 22 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
Mar 30 Javascript
通过一个简单的例子学会vuex与模块化
Nov 22 Javascript
使用vue构建多页面应用的示例
Oct 22 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&amp;java(二)
2006/10/09 PHP
杏林同学录(二)
2006/10/09 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
详解Vue.js 响应接口
2020/07/04 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Scrapy框架使用的基本知识
2018/10/21 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
Julep官网:美容产品和指甲油
2017/02/25 全球购物
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
如何写股份合作协议书
2014/09/11 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS