我试图使用jquery 1.4和jquery-ui-1.8rc3.custom.js打开一个模态的jquery对话框
在所有浏览器中,对话框没有出现问题,但在IE 7和6中,对话框打开后,窗口自动滚动到buttom …我尝试将窗口滚动回到模态位置,但是非常不一致。
在打开模态后,正在使用以下代码行
window.scrollTo($('#selector').dialog('option','position')[0],$('#selector').dialog('option','position')[1]);
我注意到的一件奇怪的事情是,在我打开模态之后,页面变得巨大,好像一些额外的东西加在底部….并且最终滚动到底部。
任何想法为什么这可能是hapenning
在html
<div id="selector"> </div>
在document.ready
$('#selector').dialog({ bgiframe: true,autoOpen: false,width: 100,height: 100,modal: true,position: 'top' });
在js
$('#selector').dialog('open');
解决方法
看起来你在选择器中缺少#
window.scrollTo($('#selector').dialog('option','position')[1]);
这可能是窗口滚动到左上角的原因。
编辑:我只是看文档和.dialog(‘选项’,’位置’)默认值是中心。
position Type: String,Array Default: ‘center’
Specifies where the dialog should be
displayed. Possible values: 1) a
single string representing position
within viewport: ‘center’,‘left’,
‘right’,‘top’,‘bottom’. 2) an array
containing an x,y coordinate pair in
pixel offset from left,top corner of
viewport (e.g. [350,100]) 3) an array
containing x,y position string values
(e.g. [‘right’,’top’] for top right
corner).
所以你可以使用position选项返回文本或数字,而window.scrollTo()需要数字。所以试试这个:
var d = $(".ui-dialog").position(); window.scrollTo( d.left,d.top);