Ich habe eine Site entwickelt und das ziemlich gute jQuery Sticky Kit- Plugin genutzt. Es funktioniert, indem die position
Eigenschaft fixed
bei Bedarf hin und zurück geschaltet wird . Läuft sehr reibungslos auf dem Desktop und akzeptabel auf Mobilgeräten.
Oder zumindest früher. iOS 9 weist ein neues Verhalten auf: Wenn sich das position
Element während der laufenden Bildlaufanimation von static
/ relative
/ absolute
auf ändert, fixed
wird das Element unsichtbar, bis der Bildlauf zum Stillstand gekommen ist. Seltsamerweise ändert sich das Gegenteil (vonfixed
zu was auch immer) ohne Probleme durchgeführt.
Ein funktionierendes Beispiel finden Sie auf der Homepage des Plugins . Die schwarze Navigationsleiste ("Beispielreferenz") soll klebrig sein. Ursprünglich ist es nur static
in der Mitte der Seite positioniert. Wenn Sie nach unten scrollen, wird es fixed
und (in iOS 9) verschwindet, bis der Bildlauf stoppt. Das Verhalten in Desktop-Browsern und iOS 8 ist korrekt.
Ich hatte irgendwie auf die typischen CSS-Problemumgehungen gehofft: Erzwingen einer 3D-Transformation, Deaktivieren der Sichtbarkeit der Rückseite und dergleichen, obskure proprietäre Eigenschaften, ... Aber nichts scheint zu funktionieren.
Werden wir "klebrige" Elemente jetzt ganz vergessen, wo es funktioniert hat?
position: sticky
in CSS verwenden, allerdings hinter einem Präfix. Sie können Ihr jQuery-Plugin für alles andere behalten und die native CSS-Lösung für iOS verwenden, wo sie unterstützt wird (7+, wenn ich mich recht erinnere).