2013-02-25 82 views
5

मैंने सीएसएस में एक रोटेशन एनीमेशन बनाया जो 1 एस लेता है और कक्षा के साथ 'आगे' सेट करता है .comet। मैं उस एनीमेशन को बाहरी तत्व पर प्रत्येक क्लिक पर कैसे शुरू कर सकता हूं?JQuery का उपयोग करके प्रत्येक क्लिक पर, मैं सीएसएस के साथ एनीमेशन सेट कैसे दोहरा सकता हूं?

#carousel #big_bubble #cometa.rotation{animation:rotation 1s forwards; -moz-animation:rotation 1.5s forwards; -webkit-animation:rotation 1s forwards; -o-animation:rotation forwards 1s; } 
    @-moz-keyframes rotation{ 
     from{transform:rotate(0deg);} 
     to{transform:rotate(-360deg);} 
@-webkit-keyframes rotation{ 
     from{-webkit-transform:rotate(0deg);} 
     to{-webkit-transform:rotate(-360deg);} 
    } 
+0

आप एक बेला लिंक प्रदान कर सकते हैं? – Roger

+0

मैंने सीएसएस पर एनीमेशन प्रदान किया। –

उत्तर

6
$(function() {// Shorthand for $(document).ready() 
    $(".trigger").click(function(e) { 
     e.preventDefault(); 
     $(this).addClass("animation").one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function(){ 
      $(this).removeClass("animation"); 
     }); 
    }); 
}); 

संसाधन:

  1. How to Capture CSS3 Animation Events in JavaScript
  2. jQuery .one()
0

तत्व के प्रत्येक क्लिक पर आप तत्व में सीएसएस वर्ग जोड़ते हैं। इस कोड को चेक करें।

अगर .comet अपने सीएसएस एनीमेशन वर्ग तो

$(document).ready(function(){ 
    $('#everybutton_element_id').click(function (e) { 
      $(this).addClass('comet'); 
      $(this).delay(2000).removeClass('comet'); 
    }); 
}); 

दोहराने तत्वों जिस पर आप इसे लागू करना चाहते हैं के किसी भी नहीं के लिए एक ही कोड है।

+1

लेकिन यह वर्ग जोड़ता है और यह वहां रहता है। दूसरे पर एनीमेशन क्लिक करें जो यह नहीं होता है। –

+0

क्या आपके पास कई बटन हैं या केवल एक बटन है। जिस पर आप इस सीएसएस वर्ग को आग लगाना चाहते हैं। –

+0

एक। # div –

3

सुनिश्चित नहीं है कि मैं आपको सही समझता हूं। वैसे भी:

$('#button').click(function() { 
    var el = $('#cometa').addClass('rotation'); 
    setTimeout(function() { 
     el.removeClass('rotation'); 
    }, 1000); 
}); 

http://jsfiddle.net/EPv3B/

+0

हमने लगभग एक ही समय में लगभग उसी उत्तर को साझा किया। यह काम करता हैं। मुझे कक्षा को हटाने के लिए केवल अतिरिक्त समय जोड़ना पड़ा - एनीमेशन केवल 1000ms के साथ बहुत चिकनी नहीं हुआ। वैसे भी आपके योगदान के लिए Thx :) –

0
$('body').on('click', '#next', function() { 
    $("#cometa").addClass("rotation"); 
    setTimeout(function() { 
    $("#cometa").removeClass('rotation'); 
}, 1500); 
}); 

यह मेरी समस्या के लिए काम करता है। एनीमेशन-समय समाप्त होने के बाद मैं उस वर्ग को हटा देता हूं।