基于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里的条件判断
Feb 27 Javascript
仅用[]()+!等符号就足以实现几乎任意Javascript代码
Mar 01 Javascript
jquery实现预览提交的表单代码分享
May 21 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
Nov 19 Javascript
Jquery中巧用Ajax的beforeSend方法
Jan 20 Javascript
JS简单实现String转Date的方法
Mar 02 Javascript
详解webpack编译多页面vue项目的配置问题
Dec 11 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
使用post方法实现json往返传输数据的方法
Mar 30 Javascript
Node.js事件的正确使用方法
Apr 05 Javascript
Vue使用Proxy监听所有接口状态的方法实现
Jun 07 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
Nov 12 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
linux中cd命令使用详解
2015/01/08 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
jQuery 表格工具集
2010/04/25 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
Vuex简单入门
2017/04/19 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python logging模块学习笔记
2014/05/24 Python
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
什么叫做SQL注入,如何防止
2016/10/04 面试题
大学生实习感言
2014/01/16 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
2016年春节慰问信息
2015/03/25 职场文书