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将标签元素的高设为屏幕的百分比
Apr 19 jQuery
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
jQuery Autocomplete简介_动力节点Java学院整理
Jul 17 jQuery
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
通过jquery的ajax请求本地的json文件方法
Aug 08 jQuery
jQuery滑动效果实现方法分析
Sep 05 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
JQuery的加载和选择器用法简单示例
May 13 jQuery
jquery图片预览插件实现方法详解
Jul 18 jQuery
jquery轻量级数字动画插件countUp.js使用详解
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程序的方法小结
2012/02/23 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
Python 异常处理实例详解
2014/03/12 Python
python with statement 进行文件操作指南
2014/08/22 Python
Python实现的科学计算器功能示例
2017/08/04 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
幼儿园社区活动总结
2014/07/07 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
学校社团活动总结
2015/05/07 职场文书
转学证明范本
2015/06/19 职场文书
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python