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 相关文章推荐
JavaScript AOP编程实例
Jun 16 Javascript
JS实现的不规则TAB选项卡效果代码
Sep 18 Javascript
JavaScript修改作用域外变量的方法
Mar 25 Javascript
全面理解JavaScript中的闭包
May 12 Javascript
json格式的javascript对象用法分析
Jul 04 Javascript
利用jQuery实现打字机字幕效果实例代码
Sep 02 Javascript
JS Testing Properties 判断属性是否在对象里的方法
Oct 01 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
Apr 19 Javascript
vue 实现v-for循环回来的数据动态绑定id
Nov 07 Javascript
12 种使用Vue 的最佳做法
Mar 30 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
Sep 04 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遍历数组的方法汇总分析
2013/06/08 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
javascript编写简易计算器
2017/05/06 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
《狼和小羊》教学反思
2014/04/20 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
个人作风建设心得体会
2014/10/22 职场文书
教师岗位职责
2015/02/03 职场文书
爱的教育观后感
2015/06/17 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
小数乘法教学反思
2016/02/22 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android
nginx之内存池的实现
2022/06/28 Servers