Jetzt käuft allerdings das Menü nicht mit!
Na, dann war das eine Abfrage zuviel, ersetze jetzt den letzten Vorschlag:
if(IE) {
if (document.body) {
if (document.body.scrollTop) diffY = document.body.scrollTop;
if (document.body.scrollLeft) diffX = document.body.scrollLeft;
}
}
durch folgendes:
if(IE) {
if (document.body) {
diffY = document.body.scrollTop;
diffX = document.body.scrollLeft;
}
}
Dann schuen wir wieder.
MfG
Hartmut R.
Hallo,
ich hab mir mal den Code angeguckt,
ich weiß jetzt nicht, mit welcher IE-Version das ursprüngliche Problem auftrat (vor der ersten Änderung), aber so wie es jetzt ist geht es nicht:
1. würdest Du mit jedem Browser außer IE und Netscape 4 einen Javascriptfehler bekommen, wegen folgendem:
NS = (document.layers) ? 1 : 0;
IE = (document.all) ? 1: 0;
function heartBeat() {
if(IE) {
if (document.body) {
if (document.body.scrollTop) diffY = document.body.scrollTop;
if (document.body.scrollLeft) diffX = document.body.scrollLeft;
}
}
if(NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; }
if(diffY != lastScrollY) {
percent = .1 * (diffY - lastScrollY);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.slide.style.pixelTop += percent;
if(NS) document.slide.top += percent;
lastScrollY = lastScrollY + percent;
}
if(diffX != lastScrollX) {
percent = .1 * (diffX - lastScrollX);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.slide.style.pixelLeft += percent;
if(NS) document.slide.left += percent;
lastScrollX = lastScrollX + percent;
}
}
Die Variable diffY ist z.B. nur für IE und Netscape 4 definiert (wenn es dann mal funktioniert), die Abfrage
if(diffY != lastScrollY)
wird aber mit allen Browsern gemacht, so daß die dann mit einem Script-Error abpfeffern.
Mußt Du also vorneweg alle Variablen initialisieren, z.B. mit
var diffY=0; dann sollte nix schlimmes passieren, auch wenn jemand mit einem anderen Browser kommt.
Die letzte Änderung mit if (document.body.scrollLeft) und if (document.body.scrollTop) geht deshalb nicht, weil die Werte am Anfang 0 sind, was das selbe ist wie false, also mach das mal wieder raus, dann können wir weitersehn.
Gruß, Lutz.