jQuery定义背景动态切换效果的方法


Posted in Javascript onMarch 23, 2015

本文实例讲述了jQuery定义背景动态切换效果的方法。分享给大家供大家参考。具体如下:

通过下面的jQuery插件,你可以将图片放在一个数组里,然后告诉jQuery图片需要在什么地方背景轮换

(function($){
 var defaultSettings;
 var divfg, divbg;
 var fadeInterval;
 var fqTimer;
 var currImg = 0;
 var displImg = 0;
 var running = false;
 // Setup settings and initialize the plugin
 $.fn.bgFade = function(settings, callback){
  defaultSettings = $.extend({
   frequency: 5000,
   speed: 10,
   images: [],
   position: "center center",
   fgz: 1,
   bgz: 0
  }, settings);
  var c = 0;
  $(this).each(function(){
   if(c == 0) divfg = $(this);
   if(c == 1) divbg = $(this);
   c++;
  });
  setBackgrounds();
  if(typeof callback == "function"){
   callback();
  }
  return this;
 };
 // Start the fadder
 $.fn.start = function(){
  fqTimer = setTimeout(function(){
  nextFade()},defaultSettings.frequency
  );
  running = true;
  return this;
 };
 // Stop the fadder
 $.fn.stop = function(){
  clearInterval(fadeInterval);
  clearTimeout(fqTimer);
  running = false;
  return this;
 }
 // Get the current image info {array id, image url}
 $.current = function(){
  return {pos: displImg, url: defaultSettings.images[displImg]}
 }
 // Set the first two backgrounds
 function setBackgrounds(){
  image1 = defaultSettings.images[0];
  image2 = defaultSettings.images[1];
  divfg.css({
   backgroundImage: "url('"+image1+"')",
   zIndex: defaultSettings.fgz,
   backgroundPosition: defaultSettings.postion
  });
  divbg.css({
   backgroundImage: "url('"+image2+"')",
   zIndex: defaultSettings.bgz,
   backgroundPosition: defaultSettings.postion
  });
  currImg = 1;
  displImg = 0;
 }
 // Set the next background after a fade completes
 function setNextBackground(){
  next = arrayNext();
  image = defaultSettings.images[next];
  divbg.css({
   backgroundImage: "url('"+image+"')"
  });
  setTimeout(function(){nextFade()}, defaultSettings.frequency);
 }
 // Run a fade
 function nextFade(){
  fadeInterval = setInterval(function(){fadeIt()}, 30);
 }
 // Decrement the opacity of the div
 function fadeIt(){
  if(divfg.css("opacity") == ''){
   op = 1;
  }else{
   op = divfg.css("opacity");
  }
  op -= ((1000 * defaultSettings.speed) / 30) * 0.0001;
  divfg.css("opacity", op);
  if(op <= 0){
   bg = divbg;
   bgimg = divbg.css("background-image");
   divfg.css("opacity", "1");
   divfg.css("background-image", bgimg);
   clearInterval(fadeInterval);
   setNextBackground();
   displImg = arrayCurrent();
  }
 }
 // Get the next item in the array
 function arrayNext(){
  var next = currImg + 1;
  if(next >= defaultSettings.images.length){
   next = 0;
  }
  currImg = next;
  return next;
 }
 // Get the current item in the array
 function arrayCurrent(){
  var cur = currImg - 1;
  if(cur < 0)
   cur = defaultSettings.images.length - 1;
  return cur;
 }
})(jQuery);

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

Javascript 相关文章推荐
js使用ajax读博客rss示例
May 06 Javascript
JavaScript实现找出数组中最长的连续数字序列
Sep 03 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
Sep 09 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
Jan 24 Javascript
javascript实现的闭包简单实例
Jul 17 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
Javascript Promise用法详解
May 10 Javascript
微信小程序多音频播放进度条问题
Aug 28 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
详解React 条件渲染
Jul 08 Javascript
vue中是怎样监听数组变化的
Oct 24 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
Mar 23 #Javascript
jQuery实现拖拽效果插件的方法
Mar 23 #Javascript
jQuery操作表单常用控件方法小结
Mar 23 #Javascript
JavaScript自定义等待wait函数实例分析
Mar 23 #Javascript
JavaScript中匿名函数用法实例
Mar 23 #Javascript
JavaScript创建一个object对象并操作对象属性的用法
Mar 23 #Javascript
JavaScript使用function定义对象并调用的方法
Mar 23 #Javascript
You might like
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
JS中call和apply函数用法实例分析
2018/06/20 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
详解python开发环境搭建
2016/12/16 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
中专生自我鉴定书范文
2013/12/28 职场文书
经济管理专业自荐信
2013/12/30 职场文书
聘任书格式及范文
2015/09/21 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
《秋思》教学反思
2016/02/23 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
AngularJS实现多级下拉框
2022/03/25 Javascript
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python