2012-02-23 7 views
12

Làm cách nào để tạo hiệu ứng động từ vị trí hiện tại sang giữa bằng cách sử dụng position({of:,my:,at:})? Có cách nào để tự động hóa quy trình hay không hoặc tôi phải tạo hiệu ứng động các thuộc tính CSS theo cách thủ công?hoạt ảnh jQuery Vị trí của jQuery Ui()

+0

Xem hàm http://api.jquery.com/animate/, bạn có thể chỉ định tập hợp giá trị CSS và jQUery sẽ thực hiện chuyển đổi. – Yogu

Trả lời

1

Bạn đã xem .animate() chưa?

Chỉnh sửa: Bây giờ tôi hiểu những gì bạn đang tìm kiếm tốt hơn một chút, here is a jQuery plugin that I wrote to do this very thing.

Here's a quick jsFiddle as an example.

Tôi đã chọn tùy chọn đối tượng có thể định cấu hình. Ví dụ:

$('#clickme').click(function() { 
    $('#blah').align({speed:1000,y:false}); 
});​ 

CHỈNH SỬA: lấy mã khác vì nó không còn cần thiết và chỉ lộn xộn mọi thứ. Làm sạch mã mới của tôi. Đã khắc phục sự cố định vị cha mẹ bị lệch. Đã thêm một liên kết đến kho git và jsFiddle bằng cách sử dụng phiên bản nguồn mới nhất.

+0

Tôi biết về điều đó, nhưng sau đó tôi sẽ phải tính toán phân chia chiều cao chiều rộng của div bằng 2, vv .. Tôi đã tự hỏi nếu có một cách để animate, nói: position ({of:, my:, at: , animate: slide}) hoặc thứ gì đó sắp xếp. – localhost

+0

jsfiddle.net/MjsDc/8/ Điều này sẽ giải quyết nó, nhưng nó khá là lộn xộn. Tôi muốn có một giải pháp để đi với vị trí ({of:, my:, at:}). – localhost

+0

@ localhost2 OK ... Tôi đã viết mã cho điều này thực sự .... nó là một đối tượng trung tâm jQuery mở rộng mà tôi sử dụng trên một trang web của khách hàng ... phải xem nếu tôi có thể đào nó lên ... –

24

Câu trả lời này có thể đã đúng vào tháng 2, nhưng giờ đây có một cách dễ dàng hơn nhiều.

Phương pháp vị trí cần tham số using chỉ dành cho mục đích này. Ví dụ:

$(div).position({ 
    at: "left+50% top+50%", 
    of: $(div).parent(), 
    using: function(css, calc) { 
     $(this).animate(css, 200, "linear"); 
    } 
}); 
+0

Tốt để biết, cảm ơn. – localhost