基于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 相关文章推荐
javascript 去字符串空格终极版(支持utf8)
Nov 14 Javascript
使用js获取图片原始尺寸
Dec 03 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
Mar 01 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
Jan 22 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
Feb 14 Javascript
vue组件与复用详解
Apr 08 Javascript
微信小程序WebSocket实现聊天对话功能
Jul 06 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
JS判断两个数组或对象是否相同的方法示例
Feb 28 Javascript
vue模式history下在iis中配置流程
Apr 17 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
May 07 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
Jun 19 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
php学习之简单计算器实现代码
2011/06/09 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
JS日历 推荐
2006/12/03 Javascript
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
Python如何使用字符打印照片
2020/01/03 Python
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
华为慧通笔试题
2016/04/22 面试题
医学护理毕业生自荐信
2013/11/07 职场文书
检察官就职演讲稿
2014/01/13 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
求职信范文大全
2014/05/26 职场文书
社区科普工作方案
2014/06/03 职场文书
部队2014年终工作总结
2014/11/27 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python