air*_*nix 72
$(formObject).dialog({
create: function(event, ui) {
$("body").css({ overflow: 'hidden' })
},
beforeClose: function(event, ui) {
$("body").css({ overflow: 'inherit' })
}
});
Run Code Online (Sandbox Code Playgroud)
或者正如我在下面的评论中提到的那样:
var dialogActiveClassName="dialog-active";
var dialogContainerSelector="body";
$(formObject).dialog({
create: function(event, ui) {
$(dialogContainerSelector).addClass(dialogActiveClassName);
},
beforeClose: function(event, ui) {
$(dialogContainerSelector).removeClass(dialogActiveClassName);
}
});
Run Code Online (Sandbox Code Playgroud)
但实际上,老实说,你应该确保创建一个对话框,将事件发送到你正在观察所述事件的窗口对象,大致类似于这样的伪事:
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);
});
Run Code Online (Sandbox Code Playgroud)
hal*_*dom 48
我需要完成同样的事情,只需在主体中添加一个类即可:
.stop-scrolling {
height: 100%;
overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
添加该类,然后在要重新启用滚动时删除,在IE,FF,Safari和Chrome中进行测试.
$('body').addClass('stop-scrolling')
Run Code Online (Sandbox Code Playgroud)
Nav*_*kar 26
简单地添加
$('body').css('overflow','hidden');
到显示模态的函数.
和
$('body').css('overflow','scroll');
你的函数关闭模态.
这是我能用上面的JasCav答案中引用的函数来解决这个问题(我有同样的问题)(这些函数):
dialogClass: 'dialog_fixed',
create: function(event, ui) {
disable_scroll(); // disable while dialog is visible
$('#dialog_form').hover(
function() { enable_scroll(); }, // mouse over dialog
function() { disable_scroll(); } // mouse not over dialog
);
},
beforeClose: function(event, ui) {
enable_scroll(); // re-enable when dialog is closed
},
Run Code Online (Sandbox Code Playgroud)
css是:
.dialog_fixed { position:fixed !important; }
Run Code Online (Sandbox Code Playgroud)
它只是将对话框固定在页面上,这可能我们不再需要了.
这允许鼠标在对话框上滚动时进行鼠标滚动,但在对话框外时不允许滚动.不幸的是,当鼠标悬停在对话框上时,它仍会滚动主页面,并滚动到对话框内的内容结尾(在IE中,在短暂的延迟后,在Safari和Firefox中).我很想知道如何解决这个问题.
我在Safari 5.1.5,Firefox 12和IE 9中对此进行了测试.
停止滚动,调整对话框位置,并在关闭对话框后将用户返回到他们正在查看的部分页面
$('<div/>').dialog({
open : function(event, ui) {
$('html').attr('data-scrollTop', $(document).scrollTop()).css('overflow', 'hidden');
$(this).dialog('option','position',{ my: 'center', at: 'center', of: window });
},
close : function(event, ui) {
var scrollTop = $('html').css('overflow', 'auto').attr('data-scrollTop') || 0;
if( scrollTop ) $('html').scrollTop( scrollTop ).attr('data-scrollTop','');
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94956 次 |
| 最近记录: |