Vir*_*ani 2 android jquery-mobile jquery-mobile-panel
当任何侧栏打开时,我不希望用户滚动.它们应该在关闭时滚动.
我使用下面的代码,但它不适用于Android移动设备
$(document).bind('panelopen', function (e, data) {
$('body').css("overflow", "hidden");
});
$(document).bind('panelclose', function (e, data) {
$('body').css("overflow", "auto");
});
Run Code Online (Sandbox Code Playgroud)
kri*_*ath 10
这个overflow选择从来没有对我有用.我不得不依赖于touchmove事件body.我把你的pageinit活动改成了这个:
$(document).on("pageinit", "#page1", function (event) {
$("#defaultpanel").on("panelopen", function (event, ui) {
//setting overflow : hidden and binding "touchmove" with event which returns false
$('body').css("overflow", "hidden").on("touchmove", stopScroll);
});
$("#defaultpanel").on("panelclose", function (event, ui) {
//remove the overflow: hidden property. Also, remove the "touchmove" event.
$('body').css("overflow", "auto").off("touchmove");
});
function stopScroll() {
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
因此,当面板打开时,overflow属性会更改,然后touchmove绑定事件body.该stopScroll功能可以防止触摸屏的默认操作,它与touchmove身体事件绑定.
当面板关闭时,您将必须从unbind该touchmove事件body恢复您的滚动.
适用于Galaxy S3,Xperia S,Nexus 4手机和Nexus 7平板电脑.
| 归档时间: |
|
| 查看次数: |
4981 次 |
| 最近记录: |