这篇文章主要介绍了jQuery定义背景动态切换效果的方法,实例分析了jQuery操作图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了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程序设计有所帮助。
新闻热点
疑难解答
图片精选