2009-04-21 29 views

Trả lời

3

tìm kiếm nhanh các plugin jQuery lần lượt lên:

Collidable Draggables

Hình như nó vẫn còn sớm, nhưng có thể đáng để kiểm tra.

0

Giả sử, nhưng tôi nghĩ rằng những gì bạn sẽ cần có thể được tìm thấy ở đây:

$.event.special.drop

Nó sử dụng jQuery nổi tiếng $ .event.special.drag để tạo sự kiện thả de. Bạn có thể đặt mã javascript của riêng mình theo .bind("drop", function(event){ phần tử này bên trong hàm này đại diện cho đối tượng có lớp "thả" mà bạn đã xác định và event.dragTarget là đối tượng đang được kéo.

Tài liệu khác tại trang web được liên kết ở trên. Đây là những gì tôi cần.

2

Tôi biết câu hỏi này khá cũ, nhưng có thể bạn sẽ thấy điều này hữu ích: Collision Check Plugin for jQuery.

Mô tả bằng tiếng Đức, nhưng phải tự giải thích. Bạn có thể sử dụng hai phần tử đơn lẻ hoặc thậm chí tập hợp các phần tử và sẽ lấy lại một tập hợp tất cả các phần tử va chạm.

14

Bạn có thể thử jquery-collision cộng jquery-ui-draggable-collision. Tiết lộ đầy đủ: Tôi vừa viết và phát hành chúng trên sourceforge.

Đầu tiên cho phép này:

var hit_list = $("#collider").collision(".obstacle"); 

đó là danh sách tất cả ".obstacle" trùng "#collider".

Thứ hai phép:

$("#collider").draggable({ obstacle: ".obstacle" }); 

nào mang đến cho bạn (trong số những thứ khác), một "va chạm" sự kiện để ràng buộc vào:

$("#collider").bind("collision", function(event,ui){...}); 

Và thậm chí bạn có thể thiết lập:

$("#collider").draggable({ obstacle: ".obstacle", preventCollision: true }); 

để ngăn chặn "#collider" không bao giờ chồng lên bất kỳ ".obstacle" nào trong khi kéo.

+1

Tôi vừa tải xuống tập lệnh trình xử lý của bạn, thật tuyệt vời! Làm thế nào tôi sẽ đi về việc có một mạng lưới của DIVs phát triển trên di chuột, và có khác (không lơ lửng) divs thu nhỏ như div lơ lửng phát triển? – Tom

+0

@tom: không chắc chắn ý bạn là gì. nếu bạn chỉ muốn thay đổi kích thước của chúng khi di chuột, hãy biến chúng thành một số lớp "có thể phát triển" và trong một cuộc gọi lại thay đổi kích thước của '$ (this)' thành lớn hơn và '$ (". growable "). này)) 'để nhỏ hơn. không chắc chắn những gì đã làm với va chạm mặc dù, vì vậy tôi có thể là sự hiểu lầm. cảm ơn vì kudo mặc dù nó có ý nghĩa rất nhiều với tôi. :-) – eruciform

+1

Cảm ơn bạn đã trả lời. Tôi đang cố gắng thực hiện hiệu ứng này (http://www.adidas.com/us/homepage.asp). Như bạn có thể thấy, khi một hộp phát triển lớn hơn, một số khác co lại để chứa kích thước của nó. Tôi đang nghĩ rằng phát hiện va chạm là cách tốt nhất để làm điều này, vì tôi cần các hộp co lại theo hướng mà một hộp đang phát triển, mà plugin của bạn có thể phát hiện (N S E và W). – Tom

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