Hallo Leute,

wie so oft heisst mein Problem Microsoft, besser gesagt Internet Explorer.

Ich habe ein Floating Menü in meine Site eingebaut, im FF funktioniert alles wie es sollte. Nur im IE ist das Foating Menü nicht fliessend sondern eher stockend.

Wenn ich runterscrolle dann hüpft das Menü stockend hinterher. Beim aufwärts Scrollen ist dies dann kein Problem mehr das Menü kommt schwunghaft hinterher.

Weiss einer an was das liegt?

Bin um jeden Tipp dankbar!

HTML-Code:
<!-- ===========================================================================

		FloatingMenu

     =========================================================================== -->

 <script type="text/javascript"><!--  

 var floatingMenuId = \'floatdiv\';  
 var floatingMenu =  
 {  
     targetX: 00,  
     targetY: 00,  
   
     hasInner: typeof(window.innerWidth) == \'number\',  
     hasElement: document.documentElement  
         && document.documentElement.clientWidth,  
   
     menu:  
         document.getElementById  
         ? document.getElementById(floatingMenuId)  
         : document.all  
           ? document.all[floatingMenuId]  
           : document.layers[floatingMenuId]  
 };  
   
 floatingMenu.move = function ()  
 {  
     if (document.layers)  
     {  
   /*      floatingMenu.menu.left = floatingMenu.nextX;  */
         floatingMenu.menu.top = floatingMenu.nextY;  
     }  
     else  
     {  
   /*     floatingMenu.menu.style.left = floatingMenu.nextX + \'px\';  */
   
   		//Wenn es nach oben geht...
   		if(floatingMenu.nextY < document.getElementById(\'floatdiv\').offsetTop) {
		//Einfach ohne Überprüfung verschieben
			floatingMenu.menu.style.top = floatingMenu.nextY + \'px\';
		  } else {
		//Wenn es nach unten geht
		  if(document.getElementById(\'floatdiv\').offsetTop < document.body.offsetHeight - 750) {
		  //Nur verschieben, wenn das Div noch nicht weiter unten ist als die Fenstergrösse - 750 (750 = Div-Höhe + Abstand von oben + die Pixel die IE falsch zählt...!)
			  floatingMenu.menu.style.top = floatingMenu.nextY + \'px\'; 
			  } else {
			  //Wenn die Div schon "zu weit" unten ist, einfach nach oben verschieben, damit sie nicht am falschen Ort hängenbleibt
			  floatingMenu.menu.style.top = document.getElementById(\'floatdiv\').offsetTop - 1;
			  }
		  }
     }  
 }  
   
 floatingMenu.computeShifts = function ()  
 {  
     var de = document.documentElement;  
   
     floatingMenu.shiftX =  
         floatingMenu.hasInner  
         ? pageXOffset  
         : floatingMenu.hasElement  
           ? de.scrollLeft  
           : document.body.scrollLeft;  
     if (floatingMenu.targetX < 0)  
     {  
         if (floatingMenu.hasElement && floatingMenu.hasInner)  
         {  
             floatingMenu.shiftX +=  
                 de.clientWidth > window.innerWidth  
                 ? window.innerWidth  
                 : de.clientWidth  
         }  
         else  
         {  
             floatingMenu.shiftX +=  
                 floatingMenu.hasElement  
                 ? de.clientWidth  
                 : floatingMenu.hasInner  
                   ? window.innerWidth  
                   : document.body.clientWidth;  
         }  
     }  
   
     floatingMenu.shiftY =   
         floatingMenu.hasInner  
         ? pageYOffset  
         : floatingMenu.hasElement  
           ? de.scrollTop  
           : document.body.scrollTop;  
     if (floatingMenu.targetY < 0)  
     {  
         if (floatingMenu.hasElement && floatingMenu.hasInner)  
         {  
             floatingMenu.shiftY +=  
                 de.clientHeight > window.innerHeight  
                 ? window.innerHeight  
                 : de.clientHeight  
         }  
         else  
         {  
             floatingMenu.shiftY +=  
                 floatingMenu.hasElement  
                 ? document.documentElement.clientHeight  
                 : floatingMenu.hasInner  
                   ? window.innerHeight  
                   : document.body.clientHeight;  
         }  
     }  
 }  
   
 floatingMenu.doFloat = function()  
 {  
     var stepX, stepY;  
   
     floatingMenu.computeShifts();  
   
     stepX = (floatingMenu.shiftX +   
         floatingMenu.targetX - floatingMenu.nextX) * .07;  
     if (Math.abs(stepX) < .5)  
     {  
         stepX = floatingMenu.shiftX +  
             floatingMenu.targetX - floatingMenu.nextX;  
     }  
   
     stepY = (floatingMenu.shiftY +   
         floatingMenu.targetY - floatingMenu.nextY) * .07;  
     if (Math.abs(stepY) < .5)  
     {  
         stepY = floatingMenu.shiftY +   
             floatingMenu.targetY - floatingMenu.nextY;  
     }  
   
     if (Math.abs(stepX) > 0 ||  
         Math.abs(stepY) > 0)  
     {  
         floatingMenu.nextX += stepX;  
         floatingMenu.nextY += stepY;  
         floatingMenu.move();  
     }  
   
     setTimeout(\'floatingMenu.doFloat()\', 20);  
 };  
   
 floatingMenu.addEvent = function(element, listener, handler)  
 {  
     if(typeof element[listener] != \'function\' ||   
        typeof element[listener + \'_num\'] == \'undefined\')  
     {  
         element[listener + \'_num\'] = 0;  
         if (typeof element[listener] == \'function\')  
         {  
             element[listener + 0] = element[listener];  
             element[listener + \'_num\']++;  
         }  
         element[listener] = function(e)  
         {  
             var r = true;  
             e = (e) ? e : window.event;  
             for(var i = element[listener + \'_num\'] -1; i >= 0; i--)  
             {  
                 if(element[listener + i](e) == false)  
                     r = false;  
             }  
             return r;  
         }  
     }  
   
     for(var i = 0; i < element[listener + \'_num\']; i++)  
         if(element[listener + i] == handler)  
             return;  
     element[listener + element[listener + \'_num\']] = handler;  
     element[listener + \'_num\']++;  
 };  
   
 floatingMenu.init = function()  
 {  
     floatingMenu.initSecondary();  
     floatingMenu.doFloat();  
 };  
   
 floatingMenu.initSecondary = function()  
 {  
     floatingMenu.computeShifts();  
     floatingMenu.nextX = floatingMenu.shiftX +  
     floatingMenu.targetX;  
     floatingMenu.nextY = floatingMenu.shiftY +  
     floatingMenu.targetY;  
     floatingMenu.move();  
 }  
   
 if (document.layers)  
     floatingMenu.addEvent(window, \'onload\', floatingMenu.init);  
 else  
 {  
     floatingMenu.init();  
     floatingMenu.addEvent(window, \'onload\',  
         floatingMenu.initSecondary);  
 }  
   
 //--></script>  

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-3593576-1";
urchinTracker();
</script>