基于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 this用法小结
Dec 19 Javascript
javascript判断iphone/android手机横竖屏模式的函数
Dec 20 Javascript
jquery showModelDialog的使用方法示例详解
Nov 19 Javascript
JavaScript图像延迟加载库Echo.js
Apr 05 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
Apr 12 Javascript
JavaScript reduce和reduceRight详解
Oct 24 Javascript
详解能在多种前端框架下使用的表格控件
Jan 11 Javascript
深入理解Node中的buffer模块
Jun 03 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
Jun 17 Javascript
微信小程序实现上传图片功能
May 28 Javascript
Vue.js实现立体计算器
Feb 22 Javascript
Vue将props值实时传递 并可修改的操作
Aug 09 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实现网上点歌(二)
2006/10/09 PHP
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
php微信开发之关注事件
2018/06/14 PHP
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
2007/04/20 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
通过实例学习React中事件节流防抖
2019/06/17 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
python中的字典使用分享
2016/07/31 Python
python脚本实现验证码识别
2018/06/07 Python
Python continue继续循环用法总结
2018/06/10 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
如何使用python传入不确定个数参数
2020/02/18 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
Django配置跨域并开发测试接口
2020/11/04 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
J2EE面试题集锦(附答案)
2013/08/16 面试题
浙江文明网签名寄语
2014/01/18 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js