微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery对话框打开时窗口向上滚动

我试图使用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);

原文地址:https://www.jb51.cc/jquery/182751.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐