是否可以在打开jQuery UI模式对话框时禁用浏览器中的滚动(仅用于浏览器的滚动条)。
注意:我确实希望在对话框中启用滚动
发布于 2011-02-03 22:35:42
您不能完全禁用滚动,但可以使用通常执行滚动的鼠标滚轮和按钮停止滚动。
看一看this answer,了解它是如何做到的。在close上,您可以在create event上调用这些函数并将一切恢复到正常状态。
发布于 2011-08-11 15:02:35
$(formObject).dialog({
create: function(event, ui) {
$("body").css({ overflow: 'hidden' })
},
beforeClose: function(event, ui) {
$("body").css({ overflow: 'inherit' })
}
});
或者,正如我在下面的评论中提到的:
var dialogActiveClassName="dialog-active";
var dialogContainerSelector="body";
$(formObject).dialog({
create: function(event, ui) {
$(dialogContainerSelector).addClass(dialogActiveClassName);
},
beforeClose: function(event, ui) {
$(dialogContainerSelector).removeClass(dialogActiveClassName);
}
});
但实际上,老实说,你应该确保创建一个对话框将一个事件冒泡到你的窗口对象,在那里你将观察到所说的事件,大致类似于下面这样的伪事件:
var dialogActiveClassName="dialog-active";
var dialogContainerSelector="body";
$(window).on("event:dialog-opened", function(){
$(dialogContainerSelector).addClass(dialogActiveClassName);
});
$(window).on("event:dialog-closed", function(){
$(dialogContainerSelector).removeClass(dialogActiveClassName);
});
发布于 2012-08-23 22:34:28
我需要做完全相同的事情,只需在主体中添加一个类即可:
.stop-scrolling {
height: 100%;
overflow: hidden;
}
在IE,FF,Safari和Chrome中测试,当你想重新启用滚动功能时,添加类,然后删除。
$('body').addClass('stop-scrolling')
https://stackoverflow.com/questions/4887332
复制相似问题