[英]Sticky menu jumps to fixed position too early on iOS Safari and Chrome
[英]Creating a “sticky” fixed-position item that works on iOS Safari
在iOS Safari中,單指平移在用戶停止平移之前不會生成任何事件。 僅當頁面停止移動並重新繪制時才會生成onscroll事件。
我需要一種方法來檢測實時滾動。 具體來說,我想制作一個也適用於iOS Safari的粘性菜單。 在非移動瀏覽器上,粘貼菜單可以通過在聽取onscroll事件時在元素上的“position relative”到“position fixed”之間切換來完成。 此方法不適用於移動瀏覽器,因為不會連續觸發onscroll事件。 我能做什么?
回答我自己的問題。 iOS7現在支持位置:粘性演示: http ://html5-demos.appspot.com/static/css/sticky.html
我最近花了很多時間試圖為同樣的問題找到一個實用的解決方案。 沒有正確的方法可以做到這一點,雖然有一些不錯的黑客(大多數已經提到)。 問題是JavaScript在用戶滾動時暫停。 當你考慮其含義時,這是有道理的,但這使得實現固定定位元素變得非常困難。
我能找到的最好的東西就是谷歌人們的這篇精彩文章。 您可以在移動safari中查看http://gmail.com以查看它的實際效果。
https://developers.google.com/mobile/articles/webapp_fixed_ui
希望這可以幫助。
我有一個類似的問題,綁定處理程序touchstart / touchmove / touchend使用jquery來檢測單指滾動,它完美地工作。 在我的情況下,我需要移動另一個元素與嘗試移動另一個元素相同的數量,並且它在嘗試滾動時很好地更新,因此它應該適合您的要求。
如果你想要的只是一個粘性菜單,你可以通過使用現有的庫來節省一些麻煩。 我在iScroll上取得了成功:
至少,你可以看看它是如何工作的,並以此為基礎構建你的解決方案。
快樂的黑客!
老話題肯定,但我可以在這里看到很多訪問。 如果你想要的只是一個粘性菜單,你可以使用固定定位。 那里不需要iScroll。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.