Tôi có một tình huống mà bên trong một div
có các mục có thể kéo được. Tuy nhiên, khi phụ huynh div
được chia tỷ lệ bằng cách sử dụng -webkit-transform
, thì khả năng kéo có thể dừng hoạt động đúng cách.jQuery có thể kéo và -webkit-transform: scale();
Tôi đã sao chép kịch bản here.
Như bạn có thể thấy, mục có thể kéo di chuyển tương đối so với tài liệu, mặc dù bố mẹ nằm ở một tỷ lệ hoàn toàn khác.
Tôi có thang đo (1.5
trong ví dụ) dưới dạng biến trong JS, vì vậy tôi có thể sử dụng, nhưng ở đâu? Tôi cần phải chia khoảng cách kéo theo quy mô, phải không? Tôi có thể làm điều này ở đâu?
Chỉnh sửa: Tôi đã thử đặt chức năng thành drag
-event, nhưng không thể tìm ra cách thực sự thay đổi khoảng cách kéo.
Edit2: tôi digged nguồn jQuery UI, và có vẻ như không có cách nào để làm điều này từ sự kiện drag
:
if(this._trigger('drag', event, ui) === false) {
this._mouseUp({});
return false;
}
Như bạn có thể thấy, giá trị trả về của callback chức năng không được lưu trữ theo bất kỳ cách nào. Vị trí của phần tử được thay đổi sau khi gọi lại đã kích hoạt, do đó việc thay đổi CSS bên trong cuộc gọi lại không hoạt động.
Bạn có thể xem mã có liên quan here bằng cách sử dụng tìm kiếm trong trình duyệt với chuỗi này:
_mouseDrag: function(event, noPropagation) {
Không phải bạn mất tích 'chặn' trong các tùy chọn của các ví dụ của bạn? Như thế này: $ ('. Draggable'). Draggable ({containsment: "parent"}); Chỉ sau đó tôi mới có thể tái tạo vấn đề của bạn. –
Bạn có chắc là bạn không thấy vấn đề không có vấn đề này? Vấn đề là phần tử được kéo di chuyển theo một thang đo khác, do đó nhanh hơn hoặc chậm hơn con trỏ. –
Ồ, bạn đúng là –