Horizontale Shifts bei Gecko-Browsern - Ein Workaround
Andreas Berkl
- browser
Hallo zusammen,
vielleicht habt Ihr Euch auch schonmal über den horizontalen Shift bei
Gecko-Browsern (namentlich Netscape 6.x und der "very sexy" Mozilla) geärgert.
Ursache des Shifts ist die Einblendung des Scrollbars bei Seiten, die größer
als die verfügbare Bildschirmhöhe sind. Folgt also z.B. eine "große" Seite
auf eine "kleine", ruckt alles einige Pixel nach links.
Ich habe mit einer ziemlichen Holzhammermethode einen Workaround gestrickt,
nicht schön, aber es funktioniert:
Ich füge ein auf 1200 Pixel Höhe skaliertes 1-Pixel-GIF am Ende der Seite
ein. Damit sind Auflösungen bis 1600x1200 abgedeckt, sollte es weitergehen
mit der Auflösung, einfach HEIGHT entsprechend hochsetzen.
Wie? Mit einer JavaScript-Funktion, die nur bei "Geckos" greift:
function geckoTrap()
{
// gecko erkennen
var browser = navigator.userAgent.toLowerCase();
if (browser.indexOf("gecko") != "-1"){
// gecko "erschlagen"
document.write('<BR><IMG SRC="pixel.gif" WIDTH=1 HEIGHT=1200>');
}
}
Wenn man diese Funktion am Ende jeder Seite aufruft erzwingt man bei "Geckos"
(und nur bei denen!) immer den Scrollbalken, d.h. der Shift ist ausgeschaltet.
Möglicherweise hat ja jemand eine elegantere Lösung, würde mich interessieren!
Gruß, Andreas
Go Mozilla!