对话框打开正在改变我的滚动顶部位置

时间:2016-03-04 09:24:06

标签: javascript jquery dialog scrollbar

问题是当我向下滚动页面时(例如Yposition = 1500)并重新加载我的dialogPreview。页面的srollTop位置正在更改为页面顶部(有对话框)。

var yPos = document.documentElement.scrollTop || document.body.scrollTop;
$("#dialogPreview").dialog({
    title : $("#previewTitle").val(),
    resizable : false,
    width : 185,
    height : 240,
    draggable : false,
    dialogClass : "dialogPreviewClass",
    position : {
        my : "left top",
        at : "left bottom",
        of : $("#previewHandler")
    },
    open: function( event, ui ) 
    {
        document.documentElement.scrollTop = yPos;
        alert("test");
    },
    close : onCloseDialog,
    autoOpen : false
});

“打开”功能运行得太快。如何检查对话框是否已加载并在正确的时刻和位置更改scrollTop位置? jquery版本1.10。 在1.9上一切都是对的。

1 个答案:

答案 0 :(得分:0)

好的,我修好了。在第一个版本中我做了简单的onFocus事件

focus: function( event, ui ) 
    {
        if(is_chrome){
            document.body.scrollTop = yPos;
        }else{
            document.documentElement.scrollTop = yPos;
        }
    },

其中yPos是

var yPos = document.documentElement.scrollTop || document.body.scrollTop;

但是我的窗口快速上下滚动。最后,我覆盖负责聚焦的函数,如here

$.ui.dialog.prototype._focusTabbable = function(){};