jQuery实现的简单图片轮播效果完整示例


Posted in jQuery onFebruary 08, 2018

本文实例讲述了jQuery实现的简单图片轮播效果。分享给大家供大家参考,具体如下:

先来看看运行效果:

jQuery实现的简单图片轮播效果完整示例

具体代码如下:

<!DOCTYPE html>
<html>
<head>
<title>jquery实现图片轮播效果</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<style>
#lunbo{width: 600px;height: 300px;margin: 0 auto;overflow: hidden;}
#pics{width: 600px;height: 300px;cursor: pointer;position: relative;}
ul li{width: 600px;height: 300px;list-style: none;position: absolute;top: 0;left: 0;display: none;}
img{width: 600px;height: 300px;}
</style>
</head>
<body>
<div id="lunbo">
  <ul id="pics">
    <li style="display: inline;"><img src="http://pic.qiantucdn.com/58pic/14/60/54/32n58PICxE6_1024.jpg"></li>
    <li><img src="http://pic.qiantucdn.com/58pic/19/09/94/5678b76f75315_1024.jpg"></li>
    <li><img src="http://pic.qiantucdn.com/58pic/19/39/22/01D58PICFx7_1024.jpg"></li>
    <li><img src="http://pic.qiantucdn.com/58pic/19/11/08/5679490f4892d_1024.jpg"></li>
    <li><img src="http://pic.qiantucdn.com/58pic/18/44/26/5620690acb188_1024.jpg"></li>
  </ul>
</div>
<script type="text/javascript">
$(document).ready(function(){
  var oLi = $("li");
  var liWidth = oLi.eq(0).width();
  var liHeight = oLi.eq(0).height();
   //每隔3秒进行轮播
  var timer = setInterval(change,3000);
    //鼠标放置在图片上时停止轮播,移开时继续轮播
    $("div").mouseover ( function(){
    clearInterval(timer);
  })
  $("div").mouseout (function(){
    timer = setInterval(change,3000);
  })
  //轮播函数
  var prevIndex = 0,nextIndex = 1;
  function change(){
    if (prevIndex == oLi.length-1 ) {//若当前图片是最后一张图片,下一张出现首张图片
      nextIndex = 0;
    }
    var n = Math.floor(Math.random()*3);
    if (n == 0) {
      fade(prevIndex,nextIndex);
    }
    else if (n== 2) {
      slide(prevIndex,nextIndex);
    }
    else{
      grap(prevIndex,nextIndex);
    }
    prevIndex = nextIndex;
    nextIndex ++;
  }
  //淡入淡出效果,
   function fade(prevIndex,nextIndex){
    //传入当前显示图片以及下一张图片的索引
    oLi.eq(prevIndex).fadeOut(1000);
    oLi.eq(nextIndex).fadeIn(1000);
   }
   //向左右滑动效果
   function slide(prevIndex,nextIndex){
    var rand = Math.floor(Math.random()*2);
    oLi.eq(nextIndex).show();
    oLi.eq(nextIndex).css("z-index","-1");
    if (rand) {
      //向左滑动
      oLi.eq(prevIndex).animate({left: -liWidth},1000,fun);
    }
    else{
      oLi.eq(prevIndex).animate({left: liWidth},1000,fun);
    }
    function fun(){
      oLi.eq(prevIndex).css({"left":"0","display":"none"});
      oLi.eq(nextIndex).css("z-index","1");
    }
   }
   //收缩效果
   function grap(prevIndex,nextIndex){
    var rand = Math.floor(Math.random()*4);
    oLi.eq(nextIndex).show();
    oLi.eq(nextIndex).css("z-index","-1");
    switch (rand){
      case 0://向左上角滑动
        oLi.eq(prevIndex).animate({left: -liWidth,top: -liHeight},1000,function(){
          oLi.eq(prevIndex).css({"left":"0","top": "0","display":"none"});
          oLi.eq(nextIndex).css("z-index","1");
        });break;
      case 1://向右上角滑动
        oLi.eq(prevIndex).animate({left: liWidth,top: -liHeight},1000,function(){
          oLi.eq(prevIndex).css({"left":'0',"top":"0","display":"none"});
          oLi.eq(nextIndex).css("z-index","1");
        });break;
      case 2://向右下角滑动
        oLi.eq(prevIndex).animate({left: liWidth,top: liHeight},1000,function(){
          oLi.eq(prevIndex).css({"left":'0',"top":"0","display":"none"});
          oLi.eq(nextIndex).css("z-index","1");
        });break;
      case 3://向左下角滑动
        oLi.eq(prevIndex).animate({left: -liWidth,top: liHeight},1000,function(){
          oLi.eq(prevIndex).css({"left":'0',"top":"0","display":"none"});
          oLi.eq(nextIndex).css("z-index","1");
        });break;
      default:break;
    }
   }
  });
</script>
</body>
</html>

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jquery DataTable实现前后台动态分页
Jun 17 jQuery
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 jQuery
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
基于jquery实现左右上下移动效果
May 02 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
jQuery 防止相同的事件快速重复触发方法
Feb 08 #jQuery
jQuery实现动态显示select下拉列表数据的方法
Feb 05 #jQuery
jQuery Dom元素操作技巧
Feb 04 #jQuery
jQuery niceScroll滚动条错位问题的解决方法
Feb 03 #jQuery
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 #jQuery
jquery.picsign图片标注组件实例详解
Feb 02 #jQuery
jquery应用实例分享_实现手风琴特效
Feb 01 #jQuery
You might like
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
2014/11/15 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
在linux中使用包管理器安装node.js
2015/03/13 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
javascript回到顶部特效
2016/07/30 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
Python 自动补全(vim)
2014/11/30 Python
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
Python制作数据导入导出工具
2015/07/31 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python3.7 dataclass使用指南小结
2019/02/22 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
关于递归的一道.NET面试题
2013/05/12 面试题
服装销售人员求职自我评价
2013/09/26 职场文书
高中自我评价分享
2013/12/05 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
理财学专业自荐书
2014/06/28 职场文书
初中毕业感言300字
2015/07/31 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
python​格式化字符串
2022/04/20 Python