2012-12-20 85 views
4

我有一個Web應用程序,它顯示一個2D圖的可滾動視圖,我試圖讓用戶更容易讓視圖始終按照手指。MobileSafari(iOS Safari):有沒有辦法阻止水平/垂直滾動「對齊」?

默認行爲是這樣的,大多數的滑動運動導致垂直或水平約束的運動,這對閱讀文本很有幫助,但對我的用例來說並不那麼重要。

編寫自定義觸摸事件代碼來直接設置滾動是一種可能性,但這使得很難恢復滾動動力。另外,本地功能可以在幕後做一些特殊的事情,比如掛起JS操作並避免重新渲染,這有助於整體性能。

是否有可以控制方向控制行爲的CSS樣式?

+0

PLS clearify,你想勢頭與否? – 2012-12-20 15:40:39

+0

我確實需要動力。我不想要方向性約束。 –

+0

你的頁面只包含圖表嗎? O – 2012-12-20 15:46:52

回答

1

我還沒有找到一種方法來指定行爲,但我發現,當我將手指放下而未移動時,然後在一秒鐘後開始移動它,它將允許我在各個方向上滾動。

也許看看如果iScroll或類似的東西會適合你,因爲它包括動量,你可以明確指定是否要鎖定方向。

+0

我從一個以上的人那裏聽說,長時間握着手指的東西會觸發它,但每當我測試時都不是這樣。在我看來,*只考慮初始移動的方向。在彈出選擇功能之前,我可以將它保持到*僅*,然後直線向下移動,然後在觸摸的其餘部分垂直限制它。我的猜測是,用戶在稍微長一點的時間後會更傾向於做對角線拖拽。 –

+0

嗯,我認爲你是對的。我只是進行了更仔細的測試,似乎只要我的輕掃不在水平或垂直軸的某個角度內,就可以向各個方向滾動,無論我的初始觸摸有多長或多短。 – freejosh

1

可以使圖溢出的頁大小:

#diagram{ 
    width: 2000px; 
} 

所有其他部分應該是固定的:

#menu, etc{ 
    position: fixed 
} 

這樣,您就可以使用頁面本身的滾動,有沒有定向約束。

爲了防止iPad來調整內容以適應設備寬度你<head>補充一點:

<meta name="viewport" content="initial-scale=1, user-scalable=no, width=2000px"> 
+1

這個答案沒有解決這個問題:它限制了它,除非你**仔細**最初對角線移動你的手指。 –

+0

默認情況下,「頁面自身的捲動」具有方向性約束。 –