Bilder bewegen lassen

Ganz Herzlichen Dank erstmal, Sven
Muß heute Abend arbeiten, deshalb komme ich wohl erst heute Nacht / morgen Früh zum Ändern des Quellcodes. Ich bin gespannt.!
Ich melde mich nocheinmal, wenn es läuft,
Grüitzi,
Ulrich

Bis auf eine kleine Änderung habe ich die Implementation zu testen versucht:
Code:
 this.schiebe = function() 
 	{
		if (this.x < window.innerWidth)
		{
			this.img.style.left = this.x; 
			this.x += this.dx;
		} else
		setTimeout(this.dt);
	}
Das Bild erscheint nun vollkommen korrekt, sobald der "Start"-Button betätigt wird, bewegt sich jedoch keinen Zoll :-(
Und die Fehlermeldung "Fehler auf der Seite" erscheint im Browser! Setze ich anstatt window[this.name].innerWidth eine Konstante ein, läuft es dagegen...=(
Ratlos,
Ulrich

13:30, 18.11.08 Sorry, ich bin zu blöd: es muß im IE natürlich
Code:
document.documentElement.clientWidth
und anstatt "setTimeOut"
Code:
clearIntervall(this.dt)
heißen
Danke noch einmal an alle und insbesondere Sven

@admin: Ich arbeite weiter an einem verfeinerten Problem, das Bild in ein iframe einzufügen, und ohne scrollLeisten das iframe so zu vergrößern/verkleinern, dass der Effekt des Ein-Ausblendens am Rand entsteht...darf ich den Beitrag solange offen lassen, bis auch das gelöst ist?
 
Zuletzt bearbeitet:
Hi folks...
ich bin nun dabei, die IMG auf IFRAME umzustellen.
Leider läßt sich der BORDER irgendwie nicht abstellen:
Code:
   this.ifr = document.createElement("iframe");
   this.ifr.style.borderStyle = "none";
Hat irgendjemand eine Ahnung?
Hilflos,
Ulrich
 
Hi,

dein gezeigtes Codefragment funktioniert bei mir nur im IE nicht. Hier ist es notwendig, das Objekt etwas anders zu erstellen - ihm wird in der createElement-Methode das gesamte Element mit dem Attribut frameborder übergeben.
Code:
  if(document.all && !window.opera)
    this.ifr = document.createElement("<iframe frameborder=\"0\"></iframe>");
  else
    this.ifr = document.createElement("iframe");

  this.ifr.style.borderStyle = "none";
Ciao
Quaese
 
Hallöle, hier bin ich wieder.
Habe einen neuen Ansatz gemacht und scheitere an:
Code:
	var laufBalkenHoehe = 600;
	var laufBalkenBreite = 157;
	var schrittWeite = 1; 
	var bildHintergrund = "#000000";
	var bilderAnzahl = 0; 
	var bild = new Array();
	var bildHoehenSumme = new Array();
	bildHoehenSumme[0] = 0;
	bildHoehenSumme[1] = 157;
	var geschwindigkeit = schrittWeite;
	
	
	function pushBildOben(s) {
		bilderAnzahl++;
		bild[bilderAnzahl] = document.getElementById("Bild"+bilderAnzahl);
		bild[bilderAnzahl].style.top = bildHoehenSumme[bilderAnzahl-1]+"px";
		bild[bilderAnzahl].innerHTML = '<a><img src=\"'+s+'\"></a>';
		bildHoehenSumme[bilderAnzahl] = parseInt(bild[bilderAnzahl].style.height)+bildHoehenSumme[bilderAnzahl-1]; 
	}
Das Problem ist eindeutig die letzte Zeile der Function: Wieso kann ich weder im Firefox noch im IE auf ......style.height zugreifen?
Hat jemand eine Idee?
Dankbar,
Ulrich
 
style-Attribute können per JS nur ermittelt werden, wenn diese per JS gesetzt wurden oder wenn diese inline im Element notiert sind.

Du kannst aber, sobald ein Bild geladen ist, direkt ohne Umweg über den style width und height auslesen. Hast du diese HTML-Attribute für die Bilder angegeben, werden die angegebenen Werte genommen, ansonsten die tatsächliche Grösse des Bildes.
 
Ich bin völlig verzweifelt: Ich finde keinen Fehler!
Es müßten aber zwei Bilder untereinander angezeigt werden:
Code:
	var laufBalkenHoehe = 600;
	var laufBalkenBreite = 157;
	var schrittWeite = 1; 
	var bildHintergrund = "#000000";
	var bilderAnzahl = 0; 
	var bild = new Array();
	var bildHoehenSumme = new Array();
	bildHoehenSumme[0] = 0;
	bildHoehenSumme[1] = 157;
	var geschwindigkeit = schrittWeite;
	
	
	function pushBildOben(s) {
		bilderAnzahl++;
		bild[bilderAnzahl] = document.getElementById("Bild"+bilderAnzahl);

//die nachfolgende Zeile ist wichtig!
		bildHoehenSumme[bilderAnzahl] = bild[bilderAnzahl].height+bildHoehenSumme[bilderAnzahl-1]; 
		bild[bilderAnzahl].style.top = bildHoehenSumme[bilderAnzahl-1]+"px";
		bild[bilderAnzahl].innerHTML = '<a><img src=\"'+s+'\"></a>';
	}
	
	function pullBildUnten(i) {
		bilderAnzahl--;
	}

	function starteLaufBalken() {
		pushBildOben('xHuhn.gif');	
		pushBildOben('xHuhn.gif');	
	}

	for (i = 1; i < 20; i++) {
		document.write('<div id=Bild'+i+' style="position:absolute;left:0;top:0;overflow:hidden"></div>');
	}
Wenn ich die nachfolgende Zeile des Kommentars:
//die nachfolgende Zeile ist wichtig!
Code:
	bildHoehenSumme[1] = 157;
auskommentiere, klappt alles dank des Testbefehles:
 
Zuletzt bearbeitet:
Ahso, ich dachte, dass es sich bei bild[] tatsächlich um Bilder handelt....tut es ja garnicht :suspekt:

versuche es mit
Code:
bild[bilderAnzahl].offsetHeight
 
Cool, es klappt zumindest im IE7. Leider aber nicht im Firefox
:mad:
Kann der Firefoxbrowser keine Auskunft über Tag-Abmessungen geben, wenn diese per Javascript geladen werden? Wäre ja ein Skandal!:suspekt:
 
Zurück