Yep - Ich mache dasselbe bei einem Projekt, das ich bei meinem Cube-Job behalte. Sie können CSS-Ausdrücke und eine Position fixiert Hack in einem IE6 nur Sheet verwenden, um es arbeiten:
/* The background-attachment: fixed smooths out the IE scrolling */
body {
background: url(foo.gif) fixed;
}
/* Adjust the 100 to whatever height you want
your container to start being fixed position at */
#fixedElement {
position: absolute;
left: 0;
top: expression(documentElement.scrollTop > 100 ? documentElement.scrollTop : 100);
}
Beachten Sie, dass die oben documentElement.scrollTop ist, wenn IE6 im Standardmodus ist. Wenn du dich im Quirks-Modus befindest, musst du ihn in document.body.scrollTop ändern.
Edit:Mit aktueller Position des rollbaren Elements
Wenn Sie es dynamisch und verwenden, um die aktuelle Position des Elements machen möchten (erhalten in dem obigen Ausdruck der 100 rid), können Sie tun es durch die Position eines ein Element testen, die an der Schwelle von rechts ist, wo man beginnen soll Scrollen:
HTML
<div id="startScroll"></div>
<div id="fixedElement">
Fixed scrolling content
</div>
CSS
#fixedElement{
position: expression(document.getElementById('startScroll').offsetTop < documentElement.scrollTop ? "absolute" : "static");
top: expression(documentElement.scrollTop);
}
Der Grund, warum Sie nicht auf #fixedElement testen selbst ist, denn sobald es Position fixiert begonnen wird, können Sie die Schwelle verloren haben, wo Sie starten und stoppen wollen Scrollen.
Auch # startScroll.offsetTop wird relativ zu seinem übergeordneten Element sein, also müssen Sie möglicherweise eine Konstante hinzufügen, um dies zu berücksichtigen (dh es ist in einem Container #content, der tatsächlich 50px von der oben auf dem Bildschirm selbst).
Ist es möglich, die 100 zu entfernen und durch die aktuelle Position des Elements zu ersetzen? – Bob
Sicher, werfen Sie einen Blick auf den aktualisierten Code. – Pat
Danke! das sieht gut aus – Bob