Tôi không có mã chính xác cho bạn, nhưng tôi có thể chỉ cho bạn đúng hướng bằng cách giúp bạn suy nghĩ về vấn đề sâu hơn một chút.
Vì vậy, người dùng bắt đầu kéo đối tượng không bị giới hạn. Như các đối tượng di chuyển một pixel đi từ điểm khởi đầu, nếu pixel đầu tiên là tại bất kỳ trong bốn (x, y) tọa độ, nơi x và y là điểm khởi đầu: (x -1, y -1), (x -1, y 1), (x +1, y -1) hoặc (x -1, y 1), vẫn chưa rõ người dùng có ý nghĩa gì, Ví dụ, tôi f đối tượng nằm ở một bên trái và bên trái, không thể biết ràng buộc có phải trên trục x hay trục y hay không.
Khi bạn di chuyển nhiều hơn một pixel, nó trở nên dễ dàng hơn. Nhưng bạn vẫn phải làm một số làm tròn trên tọa độ pixel, như trong tọa độ ở trên, abs (xoffset) == abs (yoffset), Sau đó bạn có thể kích hoạt sự kiện để áp dụng ràng buộc khi x và/hoặc y khoảng cách lớn hơn một số số nguyên nhỏ tùy ý, nói "3".
Vấn đề tiếp theo cần giải quyết là cách bắn cuối cùng của giới hạn trục bạn muốn cho phép người dùng thay đổi trục. Tôi đoán rằng bạn muốn có hiệu ứng lưới, vì vậy bạn sẽ phải đặt ngưỡng di chuyển số pixel trước khi bạn loại bỏ ràng buộc và tìm "hướng" tiếp theo mà người dùng muốn kéo.
Đây là một thử thách thú vị và trải nghiệm học tập tốt nếu bạn tìm ra cách thực hiện.
nếu bạn có thể kéo đối tượng sang trái và sang phải, lên và xuống ... bạn có thể kéo nó theo đường chéo không? hoặc bạn đang nói về từ "vị trí bắt đầu" chỉ? IE, nếu bạn bắt đầu tại 0,0 và bạn di chuyển đến một điểm vượt quá 0, -3 ... đột nhiên bạn đang bị ràng buộc theo chiều dọc chỉ? – snicker
Vâng, đó là chính xác những gì tôi muốn đạt được. –
Vâng, tôi đã viết mã để làm điều đó đúng, và JQuery chỉ sẽ không cho phép bạn thay đổi trục trong khi nó đang được kéo. – snicker