Jquery-draggable mit zoom-problem
Arbeite ich auf einer Seite, in welcher alle Inhalte sind skaliert mit zoom.
Das problem ist, wenn ich ziehen Sie etwas in die Seite ziehen Element bekommt eine schlechte position, die scheint relativ zu der zoom-Wert.
Um dieses Problem zu lösen habe ich versucht zu tun, einige Mathe über die position des ziehbar Komponente, aber scheint, dass auch tho optisch seine korrigierte, "wahre" position seiner nicht neu berechnet.
hier ist etwas code, um das besser erklären:
var zoom = Math.round((parseFloat($("body").css("zoom")) /100)*10)/10;
var x = $(this).data('draggable').position;
$(this).data('draggable').position.left = Math.round(x.left/zoom);
$(this).data('draggable').position.top = Math.round(x.top/zoom);
Jegliche Hilfe würde sehr geschätzt werden
InformationsquelleAutor Manuel | 2010-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nahm sich viel Zeit und Mühe, um dieses Problem zu lösen, aber schließlich habe ich eine Lösung, die funktioniert.
Diese Lösung funktioniert sowohl für Firefox und IE. #Leinwand ist das div enthält ziehbar. Beachten Sie, dass wir müssen sicherstellen, dass die Elemente Aufenthalte im inneren der Leinwand manuell.
Dies funktioniert auch, wenn wenn die Leinwand hat eine andere zoom-Stufe als der rest der Seite.
Scheint schon jemand kopiert meinen code auf diese Frage. 🙂
Ich habe das gleiche problem. Wird zoom-Prozentsatz oder der tatsächliche Wert?
Es ist eine lange Zeit, da ich dies Tat, aber ein Blick in den code, so muss das sein (float) Wert, wo 1.0 ist 100% zoom. Probieren Sie es aus!
Seine arbeiten gut für mich.Dank
InformationsquelleAutor torke1
Referenz für die Zukunft auf - wenn jemand jemals die Begegnung mit dem gleichen problem - eine ähnliche Frage + arbeiten Antwort gefunden werden kann,hier.
InformationsquelleAutor ptriek
Wenn CSS Zoom wird durchgeführt, der sich speziell auf die html-Körper, es ist eine sehr einfache Lösung, aber es bedeutet, müssen Sie ändern Sie die Quelle. Das ist ein no-go für einige, aber ich poste die Lösung hier auf jeden Fall.
Also die draggable-Funktionalität von jQuery UI Figuren aus der mouseposition mit einer Methode namens
_generatePosition
. Das problem ist, daß es sich nicht nehmen vergrößern berücksichtigen (duh), so wir nur haben, teilen Sie Ihr Ergebnis, indem Sie die zoom-Stufe und alles funktioniert.So schalten Sie diese:
in
Das ist alles. Ich schlage vor, speichern es unter einem bestimmten Namen, so ist es leicht zu erkennen, dass es geändert wurde. E. g.:
jquery-ui.ZOOMFIX.js
Benutzte ich die
jquery-ui.js
- Datei aus dem folgenden Paket: https://jqueryui.com/resources/download/jquery-ui-1.12.1.zipOP fragt nach einer Lösung für schlecht positioniert, ziehen mit jQuery UI. Meine Antwort stellt eine Lösung für schlecht positioniert, ziehen mit jQuery UI. Synce meine Antwort beantwortet die Frage, ob ich glaube, dass es hinreichend relevant.
InformationsquelleAutor kragovip
Nehmen Sie die scroll-position, margin und padding zu berücksichtigen? Wie:
Dann Einstellung für den zoom-Wert als nötig?
InformationsquelleAutor Matthew Callis
Ich kämpfte mit diesem für ein paar Stunden. Ich hatte ein Gitter, wo ich begann mit der Skalierung ist es, durch die Einstellung der Schriftgröße (125% etc auf die container). Dies funktionierte gut, bis ich kam in Bilder, die nicht skaliert mit dem raster.
Dachte, ich würde mit zoom statt und es war Brillant. Dann stellte ich fest, durchschleifbar/abwerfbaren war nicht die Skalierung mit ihm hmm.. Verbringen Sie mehrere Stunden versucht, Sie zu zerstören und re-init die jqueryUI-Objekte, aber nichts funktionierte.
Dann schließlich erkannte ich, ich könnte die Verwendung einer Kombination von schriftart,-Größe zum Zoomen des grid-und css-zoom für die Bilder. Jetzt funktioniert alles und ich kann per drag/drop mit der gleichen Instanz von jQueryUI.
Hoffe, dieser Ansatz hilft jemand anderes. 🙂
InformationsquelleAutor Stefan Lindberg
InformationsquelleAutor Yusuf Demirag