2013-10-17 39 views
1

引用this我想只允許垂直滾動。jQuery mobile - 只有在側面板打開時才允許垂直滾動?

下面的代碼將禁用面板上的所有移動觸摸屏。

$(document).on("pageinit", "#form1", function (event) { 
    $("#navmenu").on("panelopen", function (event, ui) { 
     $("body").css("overflow", "hidden").on("touchmove", stopScroll); 
    }); 
    $("#navmenu").on("panelclose", function (event, ui) { 
     $("body").css("overflow", "auto").off("touchmove"); 
    }); 

    function stopScroll() { 
     return false; 
    } 
}); 

如何通過stopScroll函數使用「overflow-x:hidden」來允許垂直滾動和禁用水平?

謝謝。

+0

頁面總是垂直滾動。你的意思是禁用左右滑動? – Omar

回答

1

你有沒有嘗試過這樣的

$("html, body").css("overflowX", "hidden"); 

最好做一個css獨立移動。

+0

我想在面板打開時禁用水平滾動,並在面板關閉時允許水平滾動。 CSS(「溢出-X」,「隱藏」)是必需的,但我不知道如何將這種與stopScroll功能結合起來。 – joyspeed

+0

不幸的是$(「html,body」).css(「overflow-x」,「hidden」);沒有禁用touchmove不起作用。 – joyspeed

+0

@joyspeed你的意思是禁用'touchmove'? – Praveen

0
$(document).on('panelopen', '[data-role="panel"]',function (event) { 
    document.ontouchmove = function(e) { 
     e.preventDefault(); 
    } 
}).on('panelclose', '[data-role="panel"]', function (event) { 
     document.ontouchmove = function(e) { 
      return true; 
     } 
    });