Seite 1 von 1

jquery zoom out limit

Verfasst: 11.09.2012, 11:22
von ariane
Hallo

Ich habe ein script hier:
https://www.todoweb.de/jquery/final.html#zoom
der sieht wie folgt:

oheight = image.small.height;
owidth = image.small.width;
nheight = (oheight * newZoomLevel);
nwidth = (owidth * newZoomLevel);
left = ((oheight - nheight) / 2) + moveLeft;
top = ((owidth - nwidth) / 2) + moveTop;

if(nheight<oheight) {
zoomLimit =1;
}
if(zoomLimit!=1){
$('.zoom img').css('z-index', '10').stop().animate({
'height' : nheight+'px'
, 'width' : nwidth+'px'
, 'left' : left+'px'
, 'top' : top+'px'
}
, 100
);

ich versuche ein limit zu setzen, wenn man zoom out macht aber es klappt nicht, ich komme nicht weiter.
Kann jemand mir helfen?
am besten hier schauen:
https://www.todoweb.de/jquery/final.html

Verfasst:
von

Verfasst: 11.09.2012, 11:45
von Melegrian
Das ist ja nun bereits Dein zweiter Post zu dieser Zoomfunktion. Nach Deinem ersten Post hatte ich mit den Tests für ein Tutorial begonnen, um endlich mal eine vernachlässigte Seite etwas mehr mit Content zu füllen. Ist ohne JQuery und nur mit JavaScript, die Beschreibung fehlt auch noch:

https://www.coder-welten.de/javascript/ ... script.htm

Wie man den Zoomfaktor begrenzt, sollte sich aber auch ohne Beschreibung bereits dem Listing entnehmen lassen:

https://www.coder-welten.de/javascript/ ... etails.htm

Verfasst: 11.09.2012, 12:40
von ariane
vielen dank!!!
aber leider verstehe ich nicht wie ich aus meine script heraus den Zoomfaktor verkleinern kann????

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 11.09.2012, 13:03
von Melegrian
Na einfach in dem Du jeweils eine Abfrage machst, dass zoomLevel nicht größer als 1 und nicht kleiner als 0.2 bzw. den von Dir gewünschten Level werden darf. Und so wie Du von 1 auf 0.2 verkleinerst, so kannst Du auch von 0.2 auf 1 vergrößern. Bei meinem Beispiel sehen die Anfangs- und Endzahlen nur etwas anders aus.

Verfasst: 11.09.2012, 14:01
von ariane
ich habe jetzt mein zoomLevel begrenzen können:
$('#zoom_in').click(function() {
oldzoomLevel= zoomLevel;
zoomLevel += ZOOM_INCREMENT;
if (zoomLevel > 4) {zoomLevel = 4; }
zoom(zoomLevel);
});

mein problem ist das wenn das bild vorher bewegt wurde, soll ich das auch berücksichtigen, aber irgendwie weiss ich noch nicht wie

Verfasst: 11.09.2012, 14:22
von Melegrian
Mit Left, Right, Up, Down verschiebst Du doch nur die Lage, soll heißen, die Ausrichtung der Grafik und die müsstest Du wieder umrechnen. Bisher hatte ich das nur mittig errechnet, die Liste mit den Ergebnissen werde ich noch auf der Seite einfügen. Bei Left, Right, Up, Down müsste das nun entsprechend durch eine Operation auf Top und Left angerechnet bzw. abgezogen werden. Viel mehr dürfte das nicht sein.

Bei größeren Karten wird das aber nicht mit Bildern gemacht, sondern die Grafiken werden auch erst generiert. Falls Du so etwas vorhast, belese Dich mal über Rendering-Server zur Erzeugung von Vektorgrafiken oder so.

Edit: Habe mich noch etwas belesen und für das was Du da vorhast, da sollte sich wohl als Format Shapefile eignen. Shapefile ist ein mögliches Format für Vektorgrafiken und Vektorgrafiken lassen sich verlustlos zoomen. Eine Shapefile kannst Du dann in eine raumbezogene SQl-Datenbank umwandeln (frage mich nicht wie das geht oder aussieht). Aus der Datenbank kannst Du dann (nach meinen gegenwärtigen Verständnis) jeden beliebigen Ausschnitt abrufen und rendern.

Oder Du greifst mit oder ohne JQuery gleich auf irgendeine API zu.