2012-08-03 39 views
8

Tôi có một svg trong ứng dụng của mình. Giống nhưjQuery animate yếu tố SVG

<svg id="gt" height="450" width="300" xmlns="http://www.w3.org/2000/svg"> 
<image id="1_dice" x="0" y="420" height="30" width="30" xlink:href="images/1_coin.png" /> 
</svg> 

Tôi có phần tử svg có tên '1_dice'. Trong một nút bấm HTML, tôi muốn tạo hiệu ứng cho phần tử theo các tham số. Giống như

$('#btn').click(function(){ 
    $('#1_dice').animate({'x':200},2000); 
}); 

tôi đã cố gắng này, nhưng điều này không làm việc ...

+1

Nếu DOCTYPE của trang không phải là HTML5 lưu ý rằng ID phải bắt đầu bằng một chữ cái. – undefined

+0

cảm ơn câu trả lời .. DOCTYPE của tôi là Tôi cũng thay đổi tên thành "xúc xắc". Nhưng không làm việc .. ngay cả $ ('# dice'). Hide(); điều này đang hoạt động .. plz help – ramesh

+0

$ ('# dice'). hide(); - điều này đang hoạt động ... nhưng animate không hoạt động – ramesh

Trả lời

6

jQuery animate là cho hiệu ứng động các phần tử HTML. Đối với SVG, bạn phải dùng thử plugin jQuery SVG. Vui lòng theo liên kết - http://keith-wood.name/svg.html

+1

Để được nhiều hơn chính xác, jQuery animate là để làm động các thuộc tính CSS. Một số CSS có thể áp dụng cho các yếu tố SVG, chẳng hạn như độ mờ đục, điền, nét. Xem [bài viết này] (http://www.smashingmagazine.com/2014/11/styling-and-animating-svgs-with-css/) để được giải thích. – Sygmoral

9

Có thể không có plugin, nhưng nó liên quan đến một mẹo. Vấn đề là x không phải là thuộc tính css mà là thuộc tính và chỉ jQuery.animate các thuộc tính css hoạt hình. Nhưng bạn có thể sử dụng tham số step để chỉ định hành vi tùy chỉnh của riêng bạn cho hoạt ảnh.

foo là thuộc tính không tồn tại có giá trị hoạt ảnh mà chúng tôi sử dụng trong chức năng bước.

$('#btn').click(function(){ 
    $('#dice_1').animate(
     {'foo':200}, 
     { 
      step: function(foo){ 
       $(this).attr('x', foo); 
      }, 
      duration: 2000 
     } 
    ); 
}); 
+0

Điều này chỉ hoạt động nếu giá trị bạn muốn cung cấp là một số, khiến chức năng bước chỉ mất một số. –

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