我需要对话框保持其位置固定即使页面滚动,所以我使用
扩展在 http://forum.jquery.com/topic/dialog-position-fixed-12-1-2010,但有2个问题:
扩展在 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到目前为止。