首页 > 编程 > JavaScript > 正文

jQuery定义背景动态切换效果的方法

2019-11-20 12:52:34
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表