首页 > 语言 > JavaScript > 正文

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

2024-05-06 16:17:28
字体:
来源:转载
供稿:网友

这篇文章主要介绍了jQuery定义背景动态切换效果的方法,实例分析了jQuery操作图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了jQuery定义背景动态切换效果的方法。分享给大家供大家参考。具体如下:

通过下面的jQuery插件,你可以将图片放在一个数组里,然后告诉jQuery图片需要在什么地方背景轮换

 

 
  1. (function($){ 
  2. var defaultSettings; 
  3. var divfg, divbg; 
  4. var fadeInterval; 
  5. var fqTimer; 
  6. var currImg = 0; 
  7. var displImg = 0; 
  8. var running = false
  9. // Setup settings and initialize the plugin 
  10. $.fn.bgFade = function(settings, callback){ 
  11. defaultSettings = $.extend({ 
  12. frequency: 5000, 
  13. speed: 10, 
  14. images: [], 
  15. position: "center center"
  16. fgz: 1, 
  17. bgz: 0 
  18. }, settings); 
  19. var c = 0; 
  20. $(this).each(function(){ 
  21. if(c == 0) divfg = $(this); 
  22. if(c == 1) divbg = $(this); 
  23. c++; 
  24. }); 
  25. setBackgrounds(); 
  26. if(typeof callback == "function"){ 
  27. callback(); 
  28. return this
  29. }; 
  30. // Start the fadder 
  31. $.fn.start = function(){ 
  32. fqTimer = setTimeout(function(){ 
  33. nextFade()},defaultSettings.frequency 
  34. ); 
  35. running = true
  36. return this
  37. }; 
  38. // Stop the fadder 
  39. $.fn.stop = function(){ 
  40. clearInterval(fadeInterval); 
  41. clearTimeout(fqTimer); 
  42. running = false
  43. return this
  44. // Get the current image info {array id, image url} 
  45. $.current = function(){ 
  46. return {pos: displImg, url: defaultSettings.images[displImg]} 
  47. // Set the first two backgrounds 
  48. function setBackgrounds(){ 
  49. image1 = defaultSettings.images[0]; 
  50. image2 = defaultSettings.images[1]; 
  51. divfg.css({ 
  52. backgroundImage: "url('"+image1+"')"
  53. zIndex: defaultSettings.fgz, 
  54. backgroundPosition: defaultSettings.postion 
  55. }); 
  56. divbg.css({ 
  57. backgroundImage: "url('"+image2+"')"
  58. zIndex: defaultSettings.bgz, 
  59. backgroundPosition: defaultSettings.postion 
  60. }); 
  61. currImg = 1; 
  62. displImg = 0; 
  63. // Set the next background after a fade completes 
  64. function setNextBackground(){ 
  65. next = arrayNext(); 
  66. image = defaultSettings.images[next]; 
  67. divbg.css({ 
  68. backgroundImage: "url('"+image+"')" 
  69. }); 
  70. setTimeout(function(){nextFade()}, defaultSettings.frequency); 
  71. // Run a fade 
  72. function nextFade(){ 
  73. fadeInterval = setInterval(function(){fadeIt()}, 30); 
  74. // Decrement the opacity of the div 
  75. function fadeIt(){ 
  76. if(divfg.css("opacity") == ''){ 
  77. op = 1; 
  78. }else
  79. op = divfg.css("opacity"); 
  80. op -= ((1000 * defaultSettings.speed) / 30) * 0.0001; 
  81. divfg.css("opacity", op); 
  82. if(op <= 0){ 
  83. bg = divbg; 
  84. bgimg = divbg.css("background-image"); 
  85. divfg.css("opacity""1"); 
  86. divfg.css("background-image", bgimg); 
  87. clearInterval(fadeInterval); 
  88. setNextBackground(); 
  89. displImg = arrayCurrent(); 
  90. // Get the next item in the array 
  91. function arrayNext(){ 
  92. var next = currImg + 1; 
  93. if(next >= defaultSettings.images.length){ 
  94. next = 0; 
  95. currImg = next; 
  96. return next; 
  97. // Get the current item in the array 
  98. function arrayCurrent(){ 
  99. var cur = currImg - 1; 
  100. if(cur < 0) 
  101. cur = defaultSettings.images.length - 1; 
  102. return cur; 
  103. })(jQuery); 

希望本文所述对大家的jQuery程序设计有所帮助。

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

图片精选