Nếu ai đó có thể giúp tôi tìm ra cách tạo các phần tử có thể kéo trong div thay đổi tỷ lệ dựa trên kích thước cửa sổ, tôi thực sự đánh giá cao bất kỳ hướng dẫn nào.Giá trị mảng ngăn kéo có thể kéo được cho vùng được chia tỷ lệ
Nếu tôi làm:
element.draggable({
cursor: "move",
containment: '#container'
});
Điều gì sẽ xảy ra là nó mang lại cho tôi sự ngăn chặn đối với kích thước thông thường của container. Vì vậy, nếu tôi có một transform: scale(1.5)
, sẽ có không gian trong vùng chứa mà phần tử có thể kéo không thể đi.
Tôi cũng đã thử containment: 'parent'
nhưng điều đó rất khó xử.
EDIT
Tôi đã tìm ra cách để có được ngăn chặn đầu và trái nhưng tôi không thể tìm ra cách để có được quyền và dưới.
var containmentArea = $("#container");
containment: [containmentArea.offset().left, containmentArea.offset().top, ???, ???]
Tôi đã thử rộng và chiều cao từ containmentArea[0].getBoundingClientRect()
nhưng điều đó dường như không phải là bước đi đúng đắn trong hai.
Here is a jsfiddle of some example code.
Không có nhìn cụ thể vào các chức năng dragFix (có thể, bạn có thể hạn chế các giá trị đó thay vì sử dụng ngăn chặn), giới hạn tự chúng xuất hiện để làm việc khi tôi thử nghiệm nó, nhưng cần kích thước phần tử kéo được trừ: 'var bounds = container.getBoundingClientRect(); var dragrect = $ ('. Draggable') [0] .getBoundingClientRect() .... ngăn chặn: [bounds.x, bounds.y, bounds.right - dragrect.width, bounds.bottom - dragrect.height] ' (fiddle: http://jsfiddle.net/z0gqy9w2/4/) –
@ Me.Name Hmm, bên phải và phía dưới dường như làm việc nhưng bây giờ trên và bên trái thì không. Chỉnh sửa các dragfix có thể là một giải pháp có thể. Suy nghĩ tốt. – bryan
Rất tiếc, đã sử dụng x và y thay vì trái và phải, x và y hoạt động trong firefox nên không có vấn đề gì ở đó. Điều này cũng hoạt động trong Chrome (chưa được kiểm tra tức là): 'ngăn chặn: [bounds.left, bounds.top, bounds.right - dragrect.width, bounds.bottom - dragrect.height]' (http: // jsfiddle. net/z0gqy9w2/5 /) (Tuy nhiên, làm công việc trong dragfix cảm thấy chung chung hơn, có thể mất một peek vào đó sau này) –