jquery-ui – jquery ui对话框固定定位

前端之家收集整理的这篇文章主要介绍了jquery-ui – jquery ui对话框固定定位前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要对话框保持其位置固定即使页面滚动,所以我使用
扩展在 http://forum.jquery.com/topic/dialog-position-fixed-12-1-2010,但有2个问题:

>它在IE和Firefox页面滚动闪烁(在Safari / Chrome很好)
>关闭然后重新打开,它失去其粘性,并与页面一起滚动。

这里是我用来创建对话框的代码

$('<div id="'+divpm_id+'"><div id="inner_'+divpm_id+'"></div><textarea class="msgTxt" id="txt'+divpm_id+'" rows="2"></textarea></div>')
                .dialog({
                autoOpen: true,title: user_str,height: 200,stack: true,sticky: true //uses ui dialog extension to keep it fixed
     });

这里是我用来重新打开它的代码

jQuery('#'+divpm_id).parent().css('display','block');

建议/解决方案?

谢谢

解决方法

我尝试了一些在这里发布的解决方案,但如果页面已经在打开对话框之前滚动,它们不工作。问题是它计算位置而不考虑滚动位置,因为在该计算期间位置是绝对的。

我发现的解决方案是设置对话框的父CSS的固定PRIOR以打开对话框。

$('#my-dialog').parent().css({position:"fixed"}).end().dialog('open');

这假设您已经将autoOpen设置为false的对话框初始化。

注意,如果对话框可以调整大小,这不工作。为了使位置保持固定,必须通过禁用调整大小来初始化。

$('#my-dialog').dialog({ autoOpen: false,resizable: false });

测试这彻底,发现没有bug到目前为止。

猜你在找的jQuery相关文章