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 相关文章推荐
弹出广告特效(一个IP只弹出一次)的代码
Jul 27 Javascript
《JavaScript函数式编程》读后感
Aug 07 Javascript
javascript中checkbox使用方法实例演示
Nov 19 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 Javascript
AngularJS中的API(接口)简单实现
Jul 28 Javascript
node.js学习之断言assert的使用示例
Sep 28 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
Feb 23 Javascript
修改npm全局安装模式的路径方法
May 15 Javascript
js前端面试之同步与异步问题详解
Apr 03 Javascript
通过实践编写优雅的JavaScript代码
May 30 Javascript
node实现简单的增删改查接口实例代码
Aug 22 Javascript
vue实现自定义多选按钮
Jul 16 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错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
Jquery插件之多图片异步上传
2010/10/20 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
p5.js绘制旋转的正方形
2019/10/23 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
python的re模块应用实例
2014/09/26 Python
python根据京东商品url获取产品价格
2015/08/09 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
工业自动化专业毕业生推荐信
2013/11/18 职场文书
五年级英语教学反思
2014/01/31 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
企业百日安全活动总结
2015/05/07 职场文书
孔繁森观后感
2015/06/10 职场文书
你会写请假条吗?
2019/06/26 职场文书