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 DOM学习第六章 表单实例
Feb 19 Javascript
Validform+layer实现漂亮的表单验证特效
Jan 17 Javascript
Bootstarp风格的toggle效果分享
Feb 23 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
Aug 05 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
Mar 21 Javascript
Angular directive递归实现目录树结构代码实例
May 05 Javascript
gulp安装以及打包合并的方法教程
Nov 19 Javascript
JS+HTML+CSS实现轮播效果
Nov 28 Javascript
vue通过路由实现页面刷新的方法
Jan 25 Javascript
JS实现求5的阶乘示例
Jan 21 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
Sep 09 Javascript
Openlayers实现点闪烁扩散效果
Sep 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
javascript中scrollTop详解
2015/04/13 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python采用raw_input读取输入值的方法
2014/08/18 Python
Python中文件的读取和写入操作
2018/04/27 Python
Django时区详解
2019/07/24 Python
Python Process多进程实现过程
2019/10/22 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
升学宴家长致辞
2015/07/27 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python
Java实现注册登录跳转
2022/06/16 Java/Android