Jeśli ktoś mógłby mi pomóc wymyślić, jak utworzyć elementy przeciągalne zawarte w elemencie div, który zmienia skalę na podstawie rozmiaru okna, byłbym wdzięczny za wszelkie wskazówki.Przenoszone przez jquery wartości tablicy przechowawczej dla skalowanego kontenera
Jeśli zrobić:
element.draggable({
cursor: "move",
containment: '#container'
});
Co się stanie, to daje mi pojemników do regularnej wielkości pojemnika. Więc jeśli mam transform: scale(1.5)
, w pojemniku będzie miejsce, do którego nie można przejść przez element przeciągalny.
Próbowałem również containment: 'parent'
, ale to jest bardzo glitchy.
EDIT
Znalazłem się jak dostać górny i lewy pojemników, ale nie mogę dowiedzieć się, jak uzyskać prawo i na dole.
var containmentArea = $("#container");
containment: [containmentArea.offset().left, containmentArea.offset().top, ???, ???]
Próbowałem szerokość i wysokość z containmentArea[0].getBoundingClientRect()
ale które nie wydają się być ruch w prawo albo.
Here is a jsfiddle of some example code.
nie obejrzawszy szczegółowo w funkcji dragFix (ewentualnie można powstrzymać wartości tam, zamiast korzystania z pojemników), granice sami zdają się działa po przetestowaniu, ale wymaga odjętego wymiaru przeciągniętego elementu: 'var bounds = container.getBoundingClientRect(); var dragrect = $ ('. Przeciągalny') [0] .getBoundingClientRect() .... izolacja: [bounds.x, bounds.y, bounds.right - dragrect.width, bounds.bottom - dragrect.height] ' (skrzypce: http://jsfiddle.net/z0gqy9w2/4/) –
@ Me.Name Hmm, prawy i dolny wydają się działać, ale teraz górny i lewy nie. Edytowanie dragfixa może być możliwym rozwiązaniem. Dobre myślenie. – bryan
Ups, użyto x i y zamiast lewego i prawego, x i y pracują w firefoxie, więc nie miałem żadnych problemów. Działa to również w Chrome (nie testowano np.): 'Containment: [bounds.left, bounds.top, bounds.right - dragrect.width, bounds.bottom - dragrect.height]' (http: // jsfiddle. net/z0gqy9w2/5 /) (Wciąż jednak praca w dragfix jest bardziej ogólna, może później przyjrzeć się temu) –