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 相关文章推荐
Prototype源码浅析 String部分(三)之HTML字符串处理
Jan 15 Javascript
固定网页背景图同时保持图片比例的思路代码
Aug 15 Javascript
JavaScript中双叹号!!作用示例介绍
Sep 21 Javascript
JavaScript实现列表分页功能特效
May 15 Javascript
js确认框confirm()用法实例详解
Jan 07 Javascript
理解JavaScript表单的基础知识
Jan 25 Javascript
javascript自定义滚动条实现代码
Apr 20 Javascript
浅谈Javascript中的函数、this以及原型
Oct 09 Javascript
微信小程序 Tab页切换更新数据
Jan 05 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
Feb 11 Javascript
微信小程序仿抖音短视频切换效果的实例代码
Jun 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程序员编程注意事项
2008/04/10 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
js 编写规范
2010/03/03 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
js 金额文本框实现代码
2012/02/14 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
python使用7z解压apk包的方法
2015/04/18 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python对html过滤处理的方法
2018/10/21 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
Python实现一个优先级队列的方法
2020/07/31 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
生物化工专业个人自荐信
2013/09/26 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
快速学习Oracle触发器和游标
2021/06/30 Oracle
canvas实现贪食蛇的实践
2022/02/15 Javascript