2011-12-06 219 views
3

我正在開發使用jQuery移動移動應用程序,我有以下問題:防止頁面滾動

我有一個具有內部帶有垂直滾動股利的菜單。一旦滾動到達容器的底部,它就開始滾動頁面本身,這不是我想要的。有沒有辦法阻止這種行爲?我的意思是,允許滾動菜單的滾動直到底部,當它發生時,當我在菜單上滾動時否認頁面滾動?

更新:

下面是具有相同的問題原始的例子 - http://jsfiddle.net/Wg8pk/

如果向下滾動「菜單選項」,它會下來的時候菜單到達終點滾動頁面。

+0

聽起來像是你有一些可憐的CSS標記導致滾動(東西總是推容器) - 對於你的問題,你總是可以任意的.css(「溢出」,「隱藏」),或添加有規則類在它的元素 –

+0

是否有垂直滾動下的內容?如果這是頁面的底部,你應該沒問題。你有沒有頁腳? –

+0

現在我沒有菜單下的內容。菜單有一個位置:絕對,它的動態高度是通過設置top:202px和bottom:3px設置的,使用overflow-y:auto設置,這樣垂直滾動在它應該的時候出現。 這個菜單沒有解析jQuery手機,因爲它不在data-role =「page」裏面,因爲它出現在所有頁面上。 我也做了一個測試,把垂直滾動的數據角色=「內容」的div內,問題依然存在。 –

回答

0

您需要做的菜單有一個固定的高度,然後用css來防止溢出。 用戶overflow:hidden;應該工作

1

如何調用元素event.preventDefault()你滾動:

$('#my-scroll-div').bind('touchmove', function (event) { 
    event.preventDefault(); 
}); 

我不知道哪個事件將是更好地結合,但touchmove好像它會工作。如果你設置了你的代碼的jsfiddle,我們可以給出更好的建議。

+0

下面是具有相同的問題原始的例子 - http://jsfiddle.net/Wg8pk/。 如果向下滾動「菜單選項」,當菜單到達結尾時,它將向下滾動頁面。 –

+0

@Sérgiohttp://jsfiddle.net/Wg8pk/1/我在Android設備上測試過,當我嘗試在'#mainNavigation'元素上滾動時,它不起作用。 – Jasper

+0

@Jasper的目標不是阻止#mainNavigation,而是在#mainNavigation的滾動到達結尾時阻止頁面滾動。 –