2013-07-18 318 views
5

我有一個簡單的HTML頁面,當我觸摸div時,我們無法滾動。你可以找到這個頁面here在移動設備上禁用滾動

如果你打開這個頁面的桌面瀏覽器,如Firefox,如果你按住div不能滾動。

現在我想在移動設備上的這種行爲,如Android。事實上在Android上,如果你打開這個頁面,你可以在任何情況下滾動。

對不起,在我的例子的顏色;)

+1

我可以在Chrome和Firefox中滾動 – ediblecode

+0

保持鼠標點擊並且無法滾動 – Podelo

回答

8

我想你是問如何在移動設備上禁用滾動:

您可以添加的事件偵聽器touchstarttouchmove。然後當這些事件被觸發時,使用Modernizr來檢測瀏覽器是否是觸摸設備。顯然,並非所有的手機都是觸摸設備,並且有觸摸設備具有高分辨率,因此可隨意添加或添加到if語句中。

document.addEventListener('touchstart', this.touchstart); 
document.addEventListener('touchmove', this.touchmove); 

function touchstart(e) { 
    e.preventDefault() 
} 

function touchmove(e) { 
    e.preventDefault() 
} 

或者,只是使用Modernizr的,然後使用CSS:

html.touch body { 
    overflow:hidden; 
} 

,然後添加媒體查詢,有效有你或聲明。

+0

感謝您的回答,事件touchstart和touchmove運行良好,但preventDefault方法不起作用。 Modernizr的CSS代碼不起作用。我更新了我的代碼,以便您可以在移動設備上進行測試。 – Podelo

+0

@Podelo看到更新,我忘了把'e'作爲參數 – ediblecode

+0

Ho就是這樣......非常感謝它現在的作品:) – Podelo