2012-07-09 11 views
6

मैं एक छवि के साथ एक एकल div के साथ काम कर रहा हूं। मुझे पृष्ठ के दाएं-बाएं से स्क्रॉल करने के लिए एनीमेशन की आवश्यकता है और फिर दाईं ओर वापसी करें और लूप में जारी रखें। मैंने यहां कई पोस्ट देखी हैं लेकिन स्क्रिप्ट ठीक से काम नहीं कर पा रहा हूं।लूप कैसे करें। Jimate

'$(document).ready(function(){ 
    function loop() { 

     $('#clouds').animate({left: '+=1400',},50000, 'linear', function(){ 
      loop(); 
     }); 

एचटीएमएल

< div id="clouds">< img border="0" alt="animated clouds" src="/images/clouds.png" />< /div> 

सीएसएस

#clouds { 
    position:absolute; 
    z-index:500; 
    right:0px; 
    top:10px; 
} 
+2

आपकी jQuery जानबूझकर शुरुआत में '' 'है? – SomeKittens

+0

नहीं, यह नहीं था। मैं एक सामग्री प्रबंधन प्रणाली पर काम कर रहा हूं जो बिल्कुल आंख कैंडी नहीं है। हालांकि, जोड़े गए 'यह अभी भी ठीक से काम नहीं कर रहा है। – ac12

उत्तर

16

इस प्रयास करें। लूप फ़ंक्शन के अंदर, मैंने

$('#clouds').css({right:0}); 

और लूप वहां से जारी रहेगा। मैंने आपकी एनीमेशन को "दाएं" संपत्ति को एनिमेट करने के लिए भी बदल दिया क्योंकि आपने कहा था कि आप बादलों को दाएं से बाएं स्थानांतरित करना चाहते हैं।

इसके अलावा, आपका जावास्क्रिप्ट अच्छी तरह से गठित नहीं हुआ था। सुनिश्चित करें कि आप उन समापन ब्रेसिज़ और कोष्ठक प्राप्त करते हैं! यहां तय जावास्क्रिप्ट है।

$(document).ready(function() { 
    function loop() { 
     $('#clouds').css({right:0}); 
     $('#clouds').animate ({ 
      right: '+=1400', 
     }, 5000, 'linear', function() { 
      loop(); 
     }); 
    } 
    loop(); 
}); 
+0

मैं इस सराहना की सराहना करता हूं! मैं इंटर्नशिप में हूं और कई प्रश्नों के लिए स्टैक ओवरफ्लो में आया हूं जिन्हें आम तौर पर पहले ही उत्तर दिया जाता है। मुझे अपने जैसे नोब के लिए इस तरह के महान प्रतिक्रिया समय और दयालुता की उम्मीद नहीं थी। मैंने संबंधित एक आखिरी सवाल में पढ़ा है कि 'रैखिक' चतुर आंदोलन में कटौती करता है लेकिन क्या एक और तरीका भी है? मैंने इसे 50000 तक बढ़ा दिया लेकिन अभी भी मोटा है। – ac12

+0

यदि आप एकाधिक divs के साथ एक उदाहरण पोस्ट कर सकते हैं तो भी अच्छा होगा। समय से पहले धन्यवाद मैं इसकी बहुत सराहना करता हूं! – ac12

0

JavaScript:

$(document).ready(function() { 

    $('#clouds').click(function() { 
loop();  
    }); 

function loop(){ 
    alert('a'); 
     $('#clouds').animate({ 
      opacity: 0.25, 
      left: '+=1400', 
      height: 'toggle' 
     }, 5000, 'linear', function() { 
      loop(); 
     }); 

} 

}); 

HTML:

<div id="clouds"><img border="0" alt="animated clouds" src="../img/image.png" /></div> 

आपकी त्रुटि यह है कि आप फ़ंक्शन लूप को कभी भी कॉल नहीं कर रहे हैं। देखें कि it works, आप alert('a') को हटा सकते हैं क्योंकि यह जानने के लिए कि यह चक्र शुरू हो गया है, यह सिर्फ एक ध्वज है। अब आपको रिवर्स आंदोलन (जैसे आंदोलन चक्र से शुरू करने के लिए div को रीसेट करना) बनाना होगा। आप सही पक्ष को वापस बादलों नहीं जा रहे हों

JSFiddlehttp://jsfiddle.net/2YqH2/

:

+0

मैं काम पर एक सामग्री प्रबंधन प्रणाली पर काम कर रहा हूं और JQuery आयात किया गया है। मैंने उपर्युक्त लिपि की कोशिश की और अभी भी कोई आंदोलन नहीं है। मैंने फिर से फ़ंक्शन को कॉल करने का प्रयास किया जहां // एनीमेशन पूर्ण है लेकिन कोई भाग्य नहीं था। – ac12

+0

क्या आप फायरबग का उपयोग कर सकते हैं और हमें जावास्क्रिप्ट त्रुटि संदेश बता सकते हैं? – jcho360

+0

वे कोई त्रुटि नहीं हैं। – ac12