原生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 remove 自定义数组删除方法
Oct 20 Javascript
最常用的12种设计模式小结
Aug 09 Javascript
通过action传过来的值在option获取进行验证的方法
Nov 14 Javascript
使用jQuery的attr方法来修改onclick值
Jul 07 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
Mar 31 Javascript
C++中的string类的用法小结
Aug 07 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
Jan 13 Javascript
探索webpack模块及webpack3新特性
Sep 18 Javascript
关于express与koa的使用对比详解
Jan 25 Javascript
JS实现炫酷轮播图
Nov 15 Javascript
canvas多重阴影发光效果实现
Apr 20 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
1.PHP简介
2006/10/09 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
浅谈Django REST Framework限速
2017/12/12 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Python同步遍历多个列表的示例
2019/02/19 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
python实现canny边缘检测
2020/09/14 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
年终晚会主持词
2014/03/25 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
关于颐和园的导游词
2015/01/30 职场文书
长城英文导游词
2015/01/30 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书