Tworzę interfejs umożliwiający użytkownikowi powiększenie obrazu i przeciągnięcie powiększonej wersji w obrębie div maski przycinającej.Przeciągnij powiększony obraz w obrębie maski przycinającej div przy użyciu przeciągnięcia jQuery?
Mam div 200px by 200px
, które ustawiłem overflow: hidden on. Następnie ładuję std img (<img src="etc">
) do elementu div, na przykład 1000px by 1000px
.
Następnie używam jQuery
$("#my-image").draggable({ containment: [-85,83,99,222] });
Liczby są twarde kodowane. Do tej pory mogę je znaleźć tylko metodą prób i błędów ...
Problem polega na tym, że za każdym razem, gdy dokonuję zmiany na stronie (tzn. Wstawiam kolejny element nad moim div kontenera) rozmiar strony zmienia się i mój kod jest zakodowany [ x1, y1, x2, y2] przestają działać poprawnie.
Głównym problemem jest to, że nie w pełni zrozumieć [x1, y1, x2, y2] ...
Oto docs jQuery dotyczące tego:
http://docs.jquery.com/UI/Draggable#option-containment
mam rację w myśleniu że x1 jest najbardziej zwrotnym lewym punktem, x2 jest prawym najbardziej zwrotnym punktem? (i to samo dla y1 & y2)?
Jeśli tak, jaka byłaby najlepsza strategia, aby obliczyć je dynamicznie?
Również inne szybkie i łatwe rozwiązania głównego problemu "Przeciągnij powiększony obraz w obrębie maski przycinającej div" będą mile widziane.
To jest niesamowite. Pomogłeś mi na pewno! – esvendsen
Dzięki, to jest świetne. Mam nadzieję, że js jest nadal aktualne, ponieważ rozwiązuje to prawdziwy problem dla mnie. – monotasker
Zrobiłeś mój dzień! Ważne było ustawienie pozycji @zero. Pracowałem z powiększonym obrazem dwukrotnie powiększonym o 'transform: scale (2);' Właściwość css, więc musiałem ustawić również "transform-origin: left top 0px;" i to działało poprawnie! –