ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
472
472
EMPFEHLEN
-
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>
Ähnliche Themen
-
Floating Problem
Von DeniseLechner im Forum CSSAntworten: 4Letzter Beitrag: 14.12.09, 08:00 -
floating auf rechter Seite
Von xkoy im Forum CSSAntworten: 4Letzter Beitrag: 27.11.08, 20:38 -
AE 7 floating point
Von cycovery im Forum Videoschnitt, Videotechnik & -produktionAntworten: 0Letzter Beitrag: 16.11.07, 06:48 -
Der IE und das Floating...
Von Layna im Forum CSSAntworten: 6Letzter Beitrag: 04.07.07, 15:03 -
Floating von 3 Spalten
Von Steffen Giers im Forum CSSAntworten: 4Letzter Beitrag: 03.12.05, 08:59





Zitieren
Login





