原生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 相关文章推荐
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
xml转json的js代码
Aug 28 Javascript
文件编码导致jquery失效的解决方法
Jun 26 Javascript
前端必备神器 Snap.svg 弹动效果
Nov 10 Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 Javascript
JavaScript 表单处理实现代码
Apr 13 Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 Javascript
JS onkeypress兼容性写法详解
Apr 27 Javascript
BootStrap入门教程(一)之可视化布局
Sep 19 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
Oct 10 Javascript
VueJS组件之间通过props交互及验证的方式
Sep 04 Javascript
基于Vue中的父子传值问题解决
Jul 27 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中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
网页常用特效代码整理
2006/06/23 Javascript
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
详解Vue.js 响应接口
2020/07/04 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
python构建深度神经网络(DNN)
2018/03/10 Python
Python换行与不换行的输出实例
2020/02/19 Python
python 实现单例模式的5种方法
2020/09/23 Python
python安装sklearn模块的方法详解
2020/11/28 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
值传递还是引用传递
2015/02/08 面试题
全国税务系统先进集体事迹材料
2014/05/19 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书