ScrollBy, position:fixed und IE
Michi
- javascript
Hallo.
Kann es sein, dass im IE 6 scrollBy() keine Wirkung zeigt, wenn ein workaround für fixe Positionierung auf der Seite verwendet wird?
In einer Webanwendung hätte ich ScrollBy() benötigt und versucht einzubauen, nur leider funktioniert es im IE nicht (im FF z.B. aber schon). Zum testen habe ich eine ganz simple Funktion eingesetzt:
function teste() {window.scrollBy(0, 50);}, die ich mit einem Testknopf aufrufen kann. Im IE passiert einfach nichts (kein Fehler und kein scrolling), in anderen Browsern geht es jedoch.
Ich habe schon im Forum gesucht und bin auch auf einige Posts gestoßen (z.B.: http://forum.de.selfhtml.org/archiv/2006/3/t125956/#m812337), aber leider fand ich nirgends eine Lösung.
Kann mir jemand verraten, ob es am "position:fixed" liegt und wenn ja, ob es einen workaround gibt, dass es dann doch geht.
Viele Grüße
Michi
Hallo Michi,
Kann es sein, dass im IE 6 scrollBy() keine Wirkung zeigt, wenn ein workaround für fixe Positionierung auf der Seite verwendet wird?
das kommt ganz drauf an, wie dieser Workaround aussieht.
Es gibt Lösungsansätze, die für den IE den eigentlichen Seiteninhalt in ein scrollbares div-Element packen, für body aber overflow:hidden definieren oder sonstwie dafür sorgen, dass das body-Element nicht gescrollt werden muss/kann. In diesem Fall hätte logischerweise window.scrollBy() keinerlei Funktion.
Ob scrollBy() Wirkung zeigt, wenn du es auf das div-Element anwendest, ist aber Glückssache - denn von Haus aus hat das zugehörige HTML-Elementobjekt keine scrollBy-Methode. Denkbar, dass es der IE trotzdem implementiert, aber damit begibst du dich auf dünnes Eis.
So long,
Martin
hi,
Ob scrollBy() Wirkung zeigt, wenn du es auf das div-Element anwendest, ist aber Glückssache
Wird nicht funktionieren.
scrollTop ist allerdings ausles- und beschreibbar.
gruß,
wahsaga
Hallo wahsaga,
scrollTop ist allerdings ausles- und beschreibbar.
Genial! - wäre ich mal wieder nie drauf gekommen, obwohl ich es "lesend" gleich mehrmals im code verwende.
Habe es gleich probiert und es klappt natürlich auch.
Vielen, vielen Dank
Michi
Hallo Michi,
vielleicht ist dier Link zu Scrollbare Divs per Maus-Scrollrad für
ältere Mozilla als Beispiel von scrollTop usw. noch interessant.
Zu position:fixed fällt mir noch ein, dass es mehrere Möglichkeiten
für den IE 6 gibt, abhängig auch vom jeweiligen Rendermodus:
position fixed mit "Back Compat" oder "quirks", und
position fixed bei „CSS1-kompatibel”.
Grüsse
Cyx23
Hallo Martin,
vielen Dank für die schnelle Antwort!
Kann es sein, dass im IE 6 scrollBy() keine Wirkung zeigt, wenn ein workaround für fixe Positionierung auf der Seite verwendet wird?
das kommt ganz drauf an, wie dieser Workaround aussieht.
workaround sieht wie folgt aus:
html, body {
overflow:auto; /*wobei dieses auto nur die scrollbar ausblendet, aber keinen Effekt auf die Fixierung hat*/
}
#fix {
position:absolute;
top:0;
}
Es gibt Lösungsansätze, die für den IE den eigentlichen Seiteninhalt in ein scrollbares div-Element packen, für body aber overflow:hidden definieren oder sonstwie dafür sorgen, dass das body-Element nicht gescrollt werden muss/kann. In diesem Fall hätte logischerweise window.scrollBy() keinerlei Funktion.
Habe mich noch ein wenig damit gespielt und ein paar Varianten probiert, aber immer das gleiche - entweder nicht fix oder kein scrolling.
Ob scrollBy() Wirkung zeigt, wenn du es auf das div-Element anwendest, ist aber Glückssache - denn von Haus aus hat das zugehörige HTML-Elementobjekt keine scrollBy-Methode. Denkbar, dass es der IE trotzdem implementiert, aber damit begibst du dich auf dünnes Eis.
Ja, das wäre mir dann langsam auch zu dünn. Mir schmeckt dieser workaround schon nicht gerade gut, ist aber für die Bedienbarkeit ziemlich wichtig.
Mal sehen, ob sich das scrolling nicht anders lösen lässt... evtl. indem ich etwas fokussieren lasse, o.Ä. --> für Tipps bin ich da natürlich ganz Ohr ;-)
Vielen Dank nochmal
Michi