Dabei seit: 14.06.2005 Ort: Hamburg Alter: 39 Geschlecht:
Verfasst Mo 13.11.2006 19:52 Titel
[JS] Funktionen in einer schleife mehrmals ausführen
Ich habe folgendes Problem. Ich habe eine Anfahrts-Skizze in eine Div-Container und Navigations-Pfeile. Wenn man auf die Pfeile klickt kann man durch die Karte navigieren, je nach dem in welche Richtung man klickt (Das Bild das größer als der Kontainer ist wird bewegt). Funktioniert alles Super. Doch wenn ich drauf klicke bewegt sich die Karte um einen Pixel. Ich möchte das Sie sich so lange ich den Button drücke bewegt. Bis ich los lasse.
Hier die Javascriptfunktion
Code:
function move(way, targetid) {
//Übergeben wird der Weg (north, south,...) und die ID des Bilde (also der Landkarte)
var way,targetid; // Variablen
var container_width = 480; // Höhe des Kontainers
var container_height = 480; // Breite des Kontainers
var image_width = document.getElementById(targetid).width; // breite des Bildes
var image_height = document.getElementById(targetid).height; // Höhe des Bildes
var current_right = parseInt(document.getElementById(targetid).style.right); // derzeitige Position (Right)
var current_bottom = parseInt(document.getElementById(targetid).style.bottom); // derzeitige Position (Bottom)
var default_right =400; // x-Position des Ziels (Right)
var default_bottom =100; // y-Position des Ziels (Bottom)
var max_right = image_width-container_width; // maximaler Wert für Right
var max_bottom = image_height-container_height; // maximaler Wert für Bottom
var min_right = 0; // minimaler Wert für Right
var min_bottom = 80; // minimaler Wert für Bottom
var step = 10; // Bewegungseinheiten in Pixel
var change_x = 0; // Bewegungsänderung x-Achse wird auf 0 gesetzt
var change_y = 0; // Bewegungsänderung x-Achse wird auf 0 gesetzt
// Bewegungsänderungen je nach übergebener Richtung in Variable change_x bzw. change_y schreiben
// Bewegung nach norden
if(way=="north"){
change_y = change_y - step;
}
// Neuen Right- bzw. Bottom-Wert in Variable schreiben
var new_right = current_right + change_x;
var new_bottom = current_bottom + change_y;
// Wenn Rand erreicht ist, nicht weiter gehen
if (new_right<min_right) {new_right=min_right;}
if (new_right>max_right) {new_right=max_right;}
if (new_bottom<min_bottom) {new_bottom=min_bottom;}
if (new_bottom>max_bottom) {new_bottom=max_bottom;}
// Neuen Wert in die style-Eigenschaft schreiben
document.getElementById(targetid).style.right = new_right+"px";
document.getElementById(targetid).style.bottom = new_bottom+"px";
}
Die funktion wird derzeit onmouseup bei den Jeweiligen Pfeilen ausgeführt
Danke schon mal....
Dabei seit: 19.06.2003 Ort: /dev/null Alter: 42 Geschlecht:
Verfasst Mo 13.11.2006 20:23 Titel
onmousedown und onmouseup kannst du abfragen als events.
also machst du einfach ne schleife, die sich selbst wieder aufruft, bis mouseup getriggert wird.
Dabei seit: 14.06.2005 Ort: Hamburg Alter: 39 Geschlecht:
Verfasst Mo 13.11.2006 20:39 Titel
Danke sahnemuh. Ich habe mal zum Testen
Code:
var x = 1;
do {
.....
}
while (x < 10);
ausprobiert um mal 9 Schritte nacheinander zu machen. Aber er berechnet die 9 Schritte und zeigt Sie mir dann. statt mit jeden Schritt einzeln zu zeigen.
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
Mediengestalter.info ist ein Projekt von Webformatik:: Forensoftware: phpBB