The 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;
}
});
因此,当面板打开时,overflow
属性发生改变,之后touchmove
事件绑定到body
. The stopScroll
功能,它可以防止我们的触摸屏的默认操作,绑定到touchmove
身体的事件。
当面板关闭时,您必须unbind
that touchmove
事件来自body
恢复你的卷轴。
适用于 Galaxy S3、Xperia S、Nexus 4 手机和 Nexus 7 平板电脑。
Here's the code at JSBin http://jsbin.com/azavup/14/edit