原生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之$(document).ready()使用介绍
Apr 05 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
Jan 11 Javascript
javascript函数重载解决方案分享
Feb 19 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 Javascript
JavaScript中 DOM操作方法小结
Apr 25 Javascript
深入理解JavaScript继承的多种方式和优缺点
May 12 Javascript
layui文件上传实现代码
May 20 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
Aug 21 Javascript
在Angular中使用JWT认证方法示例
Sep 10 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 jQuery
输入框点击时边框变色效果的实现方法
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
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
javascript &amp;&amp;和||运算法的另类使用技巧
2009/11/28 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
通过Python实现自动填写调查问卷
2017/09/06 Python
python解析含有重复key的json方法
2019/01/22 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
Python程序暂停的正常处理方法
2019/11/07 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
Python 操作 MySQL数据库
2020/09/18 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
九州传奇上机题
2014/07/10 面试题
车工岗位职责
2013/11/26 职场文书
优秀大学生的自我评价
2014/01/16 职场文书
2014年最新学习全国两会精神心得
2014/03/17 职场文书
禁烟标语大全
2014/06/11 职场文书
金融保险专业求职信
2014/09/03 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
2016大学军训心得体会
2016/01/11 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
详解Python描述符的工作原理
2021/06/11 Python