Ich habe eine Site entwickelt und das ziemlich gute jQuery Sticky Kit- Plugin genutzt. Es funktioniert, indem die positionEigenschaft fixedbei 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 positionElement während der laufenden Bildlaufanimation von static/ relative/ absoluteauf ändert, fixedwird 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 staticin der Mitte der Seite positioniert. Wenn Sie nach unten scrollen, wird es fixedund (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: stickyin 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).