基于jQuery实现左右图片轮播(原理通用)


Posted in Javascript onDecember 24, 2015

本文为大家分享了jQuery实现左右图片轮播代码,供大家参考,具体实现内容如下

运行效果图:

基于jQuery实现左右图片轮播(原理通用)

重点!!!

实现原理:

通过判断index值的大小变化来判断图片左移还是右移。通过控制图片的left值,来达到一个轮播的效果。

具体代码:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
 </head>
 <script src="js/jquery.min.js"></script>
 <style>
  .banner{
   margin:0 auto;
   border: 4px dashed black;
   width:400px;
   height:200px;
   position: relative;
   overflow:hidden;
  }
  .banner a{
   z-index: 100;
   display: block;
   width:100%;
   height: 100%;
   position: absolute;
   left:100%;
   top:0;
  }
  .banner .first{
   left:0;
  }
  .banner a img{
   width:100%;
   height: 100%;
  }
  .choose{
   z-index: 1000;
   position: absolute;
   left:150px;
   top:180px;
   width:100px;
   height: 10px;
  }
  .choose span{
   margin-right: 15px;
   float: left;
   display:block;
   background: blue;
   width:10px;
   height: 10px;
   border-radius: 10px;
  }
  .choose span:hover{
   background: red;
  }
  .choose .red{
   background: red;
  }
  .banner .pre,.next{
   cursor:pointer;
   text-align:center;
   border-radius:20px;
   display:block;
   background:#cccccc;
   opacity:0.4;
   text-decoration: none;
   z-index: 200;
   display:block;
   width:40px;
   height: 40px;
   font-size: 40px;
   color:red;
   position: absolute;
   top:80px;
  }
  .banner .pre{
   left:0px
  }
  .banner .next{
   right: 0px;
  }
 </style>
 <body>
  
  <div class="banner">
   <!--
    这里为上一页下一页点击按钮
   -->
   <span class="pre">-</span>
   <span class="next">+</span>
   <!--
    此处为轮播主体,颜色块代替。图片自加
   -->
   <a href="###" class="first" style="background: pink;"></a>
   <a href="###" style="background: blue;"><img src="images/banner1.jpg"/></a>
   <a href="###" style="background: greenyellow;"><img src="images/banner2.jpg"/></a>
   <a href="###" style="background: deepskyblue;"><img src="images/banner3.jpg"/></a>
   <!--
    此处为轮播部分下方小点选择
   -->
   <div class="choose">
    <span class="red"></span>
    <span></span>
    <span></span>
    <span></span>
   </div>
  </div>
  
  <script>
   /*定义两个变量,保存当前页码和上一页页码*/
   var $index=0;
   var $exdex=0;
   /*小点的鼠标移入事件,触发图片左移还是右移*/
   $(".choose span").mouseover(function(){
    //获取当前移入的index值
    $index=$(this).index();  
    //首先让点的颜色变化,表示选中
    $(".choose span").eq($index).addClass("red").siblings().
      removeClass("red");
    //判断如果index变小,证明图片要往左移动。变大则为右移
    if($index>$exdex){
     next();
    }else if($index<$exdex){
     pre();
    }
    //移动完毕将当前index值替换了前页index
    return $exdex=$index;
   });
   //下一页的点击事件。在右移基础上加了最大index判断
   $(".next").click(function(){
    $index++;
    if($index>3){
     $index=0
    }
    $(".choose span").eq($index).addClass("red").siblings().
      removeClass("red");
    next();
    return $exdex=$index;
   });
   //上一页的点击事件
   $(".pre").click(function(){
    $index--;
    if($index<0){
     $index=3
    };
    $(".choose span").eq($index).addClass("red").siblings().
     removeClass("red");
    pre();
    return $exdex=$index;
   });
   //加个定时器,正常轮播
   var atime=setInterval(function(){
    $(".next").click();   
   },1000);
   //这里为右移和左移的事件函数。
   //右移基本原理就是先让exdex定位的left左移百分百,而选中的当前页从屏幕右边移入,left变为0
   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>
 </body>
</html>

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,帮助大家实现一个简单大方的图片轮播效果。

Javascript 相关文章推荐
基于jquery的表格排序
Sep 11 Javascript
js中将String转换为number以便比较
Jul 08 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
Mar 13 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
Vue.directive自定义指令的使用详解
Mar 10 Javascript
vue增删改查的简单操作
Jul 15 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
Sep 17 Javascript
JavaScript工具库MyTools详解
Jan 01 Javascript
uni-app使用微信小程序云函数的步骤示例
May 22 Javascript
vue点击标签切换选中及互相排斥操作
Jul 17 Javascript
JS如何生成动态列表
Sep 22 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
Nov 03 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
Dec 24 #Javascript
jquery遍历函数siblings()用法实例
Dec 24 #Javascript
jQuery中的siblings用法实例分析
Dec 24 #Javascript
JQuery标签页效果实例详解
Dec 24 #Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 #Javascript
JQuery实现Ajax加载图片的方法
Dec 24 #Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
Dec 24 #Javascript
You might like
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
简单的js表格操作
2016/09/24 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
Python文件操作基本流程代码实例
2017/12/11 Python
django的ORM模型的实现原理
2019/03/04 Python
Python 画出来六维图
2019/07/26 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
六道php面试题附答案
2014/06/05 面试题
教育学习自我评价
2014/02/03 职场文书
揭牌仪式主持词
2014/03/19 职场文书
校园广播稿精选
2014/10/01 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
优秀教师推荐材料
2014/12/16 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
python - asyncio异步编程
2021/04/06 Python
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
Python开发五子棋小游戏
2022/05/02 Python