2013-02-25 27 views
5

Tôi đã tạo một hoạt ảnh xoay trong css mất 1s và có 'forwards' được đặt bằng lớp .comet. Làm thế nào tôi có thể có hình ảnh động bắt đầu ở mỗi nhấp chuột vào một yếu tố bên ngoài?Làm thế nào tôi có thể lặp lại một tập phim hoạt hình với css, tại mỗi nhấp chuột bằng cách sử dụng 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

bạn có thể cung cấp một liên kết Fiddle? – Roger

+0

tôi đã cung cấp hoạt ảnh trên CSS. –

Trả lời

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"); 
     }); 
    }); 
}); 

Resources:

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

Trên mỗi nhấp chuột của phần tử bạn thêm lớp css vào phần tử. kiểm tra mã này.

nếu .comet là css của bạn hoạt hình lớp sau đó

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

lặp lại cùng mã cho bất kỳ không có các yếu tố trên mà bạn muốn thực hiện nó.

+1

nhưng nó thêm lớp và nó vẫn ở đó. ở lần nhấp thứ hai, hoạt ảnh sẽ không diễn ra. –

+0

bạn có nhiều nút hay chỉ một nút. mà bạn muốn kích hoạt lớp css này. –

+0

một. một div có #next –

3

Không chắc tôi hiểu bạn đúng. Dù sao:

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

http://jsfiddle.net/EPv3B/

+0

Chúng tôi đã chia sẻ câu trả lời tương tự về cùng một thời điểm. Nó hoạt động. Tôi chỉ phải thêm thời gian để loại bỏ lớp học - hoạt ảnh không hoàn thành rất mượt mà chỉ với 1000ms. Thx cho sự đóng góp của bạn anyway :) –

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

này hoạt động cho vấn đề của tôi. Tôi xóa lớp đó sau khi thời gian hoạt ảnh kết thúc.

Các vấn đề liên quan