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 表格排序和表头浮动效果(扩展SortTable)
Apr 07 Javascript
jQuery实现切换页面过渡动画效果
Oct 29 Javascript
vue的事件绑定与方法详解
Aug 16 Javascript
vue cli使用绝对路径引用图片问题的解决
Dec 06 Javascript
详解Angular5 服务端渲染实战
Jan 04 Javascript
Vue项目安装插件并保存
Jan 28 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
Jun 06 Javascript
解决$store.getters调用不执行的问题
Nov 08 Javascript
vue el-table实现自定义表头
Dec 11 Javascript
jquery实现垂直手风琴菜单
Mar 04 jQuery
js实现九宫格布局效果
May 28 Javascript
js 执行上下文和作用域的相关总结
Feb 08 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来写记数器(详细介绍)
2006/10/09 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
SWFObject Flash js调用类
2008/07/08 Javascript
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
Python中__call__用法实例
2014/08/29 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
2016/01/20 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
如何提高python 中for循环的效率
2020/04/15 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
区域销售主管岗位职责
2014/06/15 职场文书
招商引资工作汇报
2014/10/28 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书