基于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的倒计时插件代码
May 07 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
Mar 07 Javascript
JavaScript获取客户端IP的方法(新方法)
Mar 11 Javascript
javascript深拷贝(deepClone)详解
Aug 24 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
Nov 03 Javascript
vue cli使用绝对路径引用图片问题的解决
Dec 06 Javascript
详解es6超好用的语法糖Decorator
Aug 01 Javascript
微信小程序全局变量功能与用法详解
Jan 22 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
Feb 19 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
Jul 29 Javascript
Vue实现移动端拖拽交换位置
Jul 29 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 静态化实现代码
2009/03/20 PHP
PHP基础知识介绍
2013/09/17 PHP
php 启动报错如何解决
2014/01/17 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
js 内存释放问题
2010/04/25 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
简单讲解Python编程中namedtuple类的用法
2016/06/21 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
告诉你怎样写创业计划书
2014/01/27 职场文书
网上快餐厅创业计划书
2014/02/01 职场文书
积极向上的团队口号
2014/06/06 职场文书
立志成才演讲稿
2014/09/04 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
大班下学期个人总结
2015/02/13 职场文书
Vue深入理解插槽slot的使用
2022/08/05 Vue.js