jQueryUI模态对话框-拖动在Google Chrome中导致意外的位置变化



Chrome v. 26.0.1410.64

jQuery v. 1.7.1

jQueryUI v. latest

web应用程序是使用asp.net webforms构建的

  • 发生的是,当页面在顶部时,对话框正常打开,一切都按预期工作。拖动对话框不会导致问题。如果页面向下滚动,当尝试拖动对话框时,对话框的top css属性大致增加垂直滚动量的值。这只发生在谷歌浏览器。

这是函数中打开模态弹出窗口的部分。

    var $dialog = $('<div id="dialogIframe" title="Some title"></div>')
    .html('<iframe id="jqueryIframe" style="border: 0px;" src="' + page + '"
    width="99%" height="99%"></iframe>')
    .dialog({
        autoOpen: false,
        modal: true,
        height: height,
        width: width,
        resizable: false,
        draggable: true,
        buttons: dialog_buttons,
        close: function (event, ui) {
            $('#dialogIframe').remove();
        }
     });
     $dialog.dialog('open');
  • 我正在做别人的代码。我不确定是什么导致了这种行为。什么可能导致这种行为

编辑:当切换到jQuery 1.9.1版本时,它可以在谷歌浏览器中正常工作,但同样的问题现在出现在IE9和FF最新(他们可以正常使用旧的jQ版本)

编辑2:-我有一种感觉,这个问题可能与webforms中的MaintainScrollPositionOnPostback页面属性有关,顺便说一下,我无法以任何常规方式禁用或设置为false:在aspx页面上,同一页面的代码隐藏,母版页面,web。Config,这太棒了

在chrome中也有同样的问题,用

解决了
           open:function(){
            $('body').addClass('stop-scrolling')
        },
    beforeClose: function( event, ui ) {
        $('body').removeClass('stop-scrolling')
    },

这对我来说很有效,因为我的对话框非常小,但是当你的对话框中的内容超过屏幕空间时,你可能会遇到麻烦

CSS类看起来像

 .stop-scrolling {
 height: 100%;
 overflow: hidden;
}

并阻止主体滚动

最新更新