2010-11-19 12 views
10

हैलो मैं तो जैसे पाश के लिए एक में बनाया divs की एक श्रृंखला है:jQuery मेकअप div बार-बार अंदर और बाहर फीका

var myDiv ='#bannerHolder' 
     var fib_str = '1, 2, 3, 5, 8, 13, 21, 1, 2, 3, 5, 8, 13, 21, 1, 2, 3, 5, 8, 13, 21, 1, 2, 3, 5, 8, 13' 
     var widths_str = '33px, 31px, 35px, 9px, 16px, 50px, 33px, 24px, 40px, 20px, 63px, 30px, 10px, 29px, 11px, 12px, 51px, 31px, 35px, 11px, 14px, 50px, 30px, 25px, 38px, 20px, 35px' 
     var pos_str = '0px, 44px, 105px, 144px, 153px, 203px, 236px, 269px, 280px, 354px, 374px, 437px, 447px, 457px, 506px, 517px, 529px, 604px, 646px, 687px, 698px, 712px, 762px, 787px, 823px, 895px, 915px' 
     var color_str = '#D5E1D7, #18D4C9,#BF51C3,#1E82C9, #EDEDED, #E1C981, #C9A94F, #BDBCAA, #5DB522, #EB2F34, #823133, #004BD8, #A6A0A0, #DS9F36, #FFDB00, #69944F, #18D4C9, #BF51C3, #1E82C9, #6B949A, #FFDB00, #819E64, #BDBCAA, #54BA43, #EB2F34, #823133' 
     var width = widths_str.split(","); 
     var pos = pos_str.split(","); 
     var color = color_str.split(","); 
     var fib = fib_str.split(","); 
     console.log(width); 
     console.log(pos); 
     console.log(color); 
     var counter = width.length 
     var stopper = false; 
for(i=0;i<counter;i++){ 
       var html = '<div id ="stripe'+i+'"/>' 
       $(myDiv).append(html) 
       $('#stripe'+i).css({ 'top': 0, 'left': pos[i],'position': 'absolute', 'float': 'left', 'background-color' : color[i]}) 
       $('#stripe'+i).attr({ 'min-width' : width[i], 'min-height' : '100px' }) 
       $('#stripe'+i).width(width[i]) 
       $('#stripe'+i).height('100px') 


      }; 

क्या मैं चाहता हूँ प्रत्येक बनाया div बाहर फीका को पूरी तरह से तो फिर से वापस नहीं हो पाती है और इस प्रक्रिया के लिए हमेशा के लिए दोहराना जारी रखने के लिए। अगर मैं .animate() का उपयोग करने की कोशिश करता हूं और पूर्ण के लिए एक फ़ंक्शन कॉल करता हूं: संपत्ति मुझे बहुत अधिक रिकर्सन मिलती है और पेज ब्रेक मिलता है, मैं यह कैसे कर सकता हूं

+2

'

....
' –

+0

क्या आप मेरी उदाहरण ब्रायन समझते हैं? अनुकूलित होने पर यह आपके कोड के लिए काम करेगा। – Orbling

उत्तर

18

समस्या एक दूसरे के अंदर से फीड *() दिनचर्या को दोबारा बुला रही है, आपको अनुक्रम को एक गैर-पुनरावर्ती फैशन में बार-बार कहा जा सकता है।

यह काफी साफ विधि है:

डेमो यहाँ: http://jsfiddle.net/ZZGhn/

$('.block').bind('fade-cycle', function() { 
    $(this).fadeOut('fast', function() { 
     $(this).fadeIn('fast', function() { 
      $(this).trigger('fade-cycle'); 
     }); 
    }); 
}); 

// This next block of code just sets all the triggers off at random times 
// The point is to start them using .trigger('fade-cycle'); 
// All can be started simultaneously with $('.block').trigger('fade-cycle'); 

$('.block').each(function(index, elem) { 
    setTimeout(function() { 
     $(elem).trigger('fade-cycle'); 
    }, index * 250); 
}); 
+0

होने की आवश्यकता है हां इसे वास्तव में काम करने के लिए मिला, बहुत बहुत धन्यवाद !! –

+0

@ ब्रायन ग्लेड यह आपके लिए काम करता है। :-) – Orbling

+0

आप इसे कैसे रोकते हैं? – trusktr

2

क्या आपने Pulse प्लगइन माना है? डेमो here

+0

जो केवल कुछ निश्चित समय के लिए करता है ??? मुझे इसे लगातार –

0

आप पोस्ट करने से पहले एक खोज क्या किया?

इस सवाल-जवाब कम से कम सही दिशा में बात करनी चाहिए: jQuery fadein fadeout repeatedly

+0

हाँ Ive ने खोजों का भार पूरा किया, लेकिन उसे कोई नहीं मिला, मुझे लगता है कि fadItIn अपरिभाषित है, fadeItOut अपरिभाषित है ... –

+0

क्या आपने fadeItOut और fadeitIn फ़ंक्शंस को जोड़ा है पृष्ठ? – Patricia