原生JS实现图片轮播效果


Posted in Javascript onDecember 26, 2016

之前页面需要图片轮播的时候,都是直接在网上找一个插件,然后自己动手改一下,把图片的路径改成自己图片的路径,然后万事大吉。后来觉得这样并不能提高自己的前端水平,于是乎,自己动手写了一个图片轮播的小demo,用的是jquery,小弟前端小白一个,各位前端大神看了之后,望批评指正。

我的思路是这样的,定义两个变量,一个用来保存当前页码$index,一个用来保存上一页的页码$exdex,首先判断$index和$exdex的大小,如果$index大于$exdex,说明是朝左翻页,反之,就是朝右翻页。如果是朝左翻页,就把当前页朝左偏移100%的宽度,让下一页同样朝左偏移100%宽度。以下是代码部分:

<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    .banner{
      width:300px;
      height:250px;
      position: relative;
      z-index: 100;
      background: skyblue;
      margin:100px auto;
      overflow:hidden ;
    }

    .banner .first{
      left:0;
    }
    .banner a{
      width: 100%;
      height: 100%;
      position: absolute;
      display:block;
      top:0;
      left:100%;
    }
    .banner a img{
      width: 100%;
      height: 100%;
    }
    .banner .pre{
      position: absolute;
      left:0;
      top:120px;
      background: gray;
      width:30px;
      height:30px;
      border-radius: 30px;
      line-height: 30px;
      text-align: center;
      opacity: 0.4;
      z-index: 1000;
      cursor: pointer;
    }
    .banner .next{
      position: absolute;
      right:0;
      top:120px;
      background: gray;
      width:30px;
      height:30px;
      border-radius: 30px;
      line-height: 30px;
      text-align: center;
      opacity: 0.4;
      z-index: 1000;
      cursor: pointer;
    }
    .choose{
      position: absolute;
      width:100px;
      height:20px;
      bottom:10px;
      left:90px;
      z-index: 1000;
    }
    .choose span{
      display: block;
      float: left;
      margin-left:15px;
      width:10px;
      height:10px;
      border-radius: 10px;
      background: blue;
      cursor: pointer;
    }
    .choose .red{
      background: red;
    }
  </style>
</head>
<body>
  <div class="banner">
    <span class="pre"><=</span>
    <span class="next">=></span>
    <a href="#" class="first"><img src="./1.jpg" alt=""/></a>
    <a href="#"><img src="./2.jpg" alt=""/></a>
    <a href="#"><img src="./3.jpg" alt=""/></a>
    <a href="#"><img src="./4.jpg" alt=""/></a>
    <div class="choose">
      <span class="red"></span>
      <span></span>
      <span></span>
      <span></span>
    </div>
  </div>
</body>
<script src="./jquery.min.js"></script>
<script>
  var $index = 0;
  var $exdex = 0;
  $('.choose span').mouseover(function(){
    $index = $(this).index();
    $('.choose span').eq($index).addClass("red").siblings().removeClass("red");
    if($index > $exdex) {
      next();
    } else {
      pre();
    }
    return $exdex = $index;
  });

  function next() {
    $('.banner a').eq($index).stop(true,true).css('left',"100%").animate({"left":0});
    $('.banner a').eq($exdex).stop(true,true).css('left',"0").animate({"left":"-100%"});
  }

  function pre() {
    $('.banner a').eq($index).stop(true,true).css('left',"-100%").animate({"left":"0"});
    $('.banner a').eq($exdex).stop(true,true).css('left',"0").animate({"left":"100%"});
  }
</script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 以对象为索引的关联数组
May 19 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
JavaScript中的Math.E属性使用详解
Jun 12 Javascript
JavaScript文本框脚本编写的注意事项
Jan 25 Javascript
vue实现列表的添加点击
Dec 29 Javascript
js 作用域和变量详解
Feb 16 Javascript
使用JS组件实现带ToolTip验证框的实例代码
Aug 23 Javascript
Vue实现typeahead组件功能(非常靠谱)
Aug 26 Javascript
写给小白看的JavaScript异步
Nov 29 Javascript
手把手带你封装一个vue component第三方库
Feb 14 Javascript
通过实例解析js简易模块加载器
Jun 17 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
May 15 Javascript
输入框点击时边框变色效果的实现方法
Dec 26 #Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
Dec 26 #Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
Dec 26 #Javascript
Bootstrap 轮播(Carousel)插件
Dec 26 #Javascript
基于ajax与msmq技术的消息推送功能实现代码
Dec 26 #Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
Dec 26 #Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 #Javascript
You might like
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
Python 3中的yield from语法详解
2017/01/18 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Python编程argparse入门浅析
2018/02/07 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
Linux下python制作名片示例
2018/07/20 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
python虚拟环境完美部署教程
2019/08/06 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
为什么要使用servlet
2016/01/17 面试题
舞蹈教育学专业推荐信
2013/11/27 职场文书
财务会计专业求职信范文
2013/12/31 职场文书
期末学生评语大全
2014/04/24 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang