簡體   English   中英

創建一個適用於iOS Safari的“粘性”固定位置項

[英]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上取得了成功:

http://cubiq.org/iscroll

至少,你可以看看它是如何工作的,並以此為基礎構建你的解決方案。

快樂的黑客!

老話題肯定,但我可以在這里看到很多訪問。 如果你想要的只是一個粘性菜單,你可以使用固定定位。 那里不需要iScroll。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM