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判断用户是否上网(连接网络)
Dec 23 Javascript
angularjs实现与服务器交互分享
Jun 24 Javascript
JS继承用法实例分析
Feb 05 Javascript
JavaScript 浏览器对象模型BOM使用介绍
Apr 13 Javascript
jQuery实现立体式数字滚动条增加效果
Dec 21 Javascript
快速实现jQuery多级菜单效果
Feb 01 Javascript
JavaScript拖动层Div代码
Mar 01 Javascript
基于vue的短信验证码倒计时demo
Sep 13 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
Aug 07 Javascript
Vue基础学习之项目整合及优化
Jun 02 Javascript
vue的滚动条插件实现代码
Sep 07 Javascript
Vue程序化的事件监听器(实例方案详解)
Jan 07 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 数据库树的遍历方法
2009/02/06 PHP
Php连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
php简单统计中文个数的方法
2016/09/30 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
javascript date格式化示例
2013/09/25 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
element中的$confirm的使用
2020/04/26 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
Python、Javascript中的闭包比较
2015/02/04 Python
Pyhton中防止SQL注入的方法
2015/02/05 Python
python实现对excel进行数据剔除操作实例
2017/12/07 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
对python mayavi三维绘图的实现详解
2019/01/08 Python
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
UML设计模式笔试题
2014/06/07 面试题
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
医院护士的求职信范文
2013/12/26 职场文书
《莫泊桑拜师》教学反思
2014/04/23 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
好人好事新闻稿
2015/07/17 职场文书