【问题标题】:Jquery modal dialogs DISABLE the scrollbarsJquery模式对话框禁用滚动条
【发布时间】:2012-02-14 15:47:23
【问题描述】:

正如您在此链接上看到的, http://jsbin.com/ozapol/9,

Jquery 在某些版本的 IE 和最新版本的 chrome 上禁用滚动条。 (我还没有尝试任何其他的......)

有没有办法让滚动条保持启用,以便能够滚动长长的对话框?

谢谢! 再见

Internet Explorer 的不错解决方案(感谢 jk。)

html {overflow-y : scroll}

Chrome 的残酷解决方法(感谢 jk。)

在 Chrome 上,JqueryUI 劫持滚动条上的鼠标事件。 这看起来像上面链接中提到的错误。 为了删除这些绑定,您必须取消绑定事件 每次创建模态对话框时:

$("#longdialog").dialog({
     open: function(event, ui) {
        window.setTimeout(function() {
            jQuery(document).unbind('mousedown.dialog-overlay')
                            .unbind('mouseup.dialog-overlay');
        }, 100);
    },
   modal:true
});

还有最后一个例子:http://jsbin.com/ujagov/2

错误报告链接:

  1. http://bugs.jqueryui.com/ticket/4671
  2. http://wiki.jqueryui.com/w/page/34725121/Visual-Test-Page-Cleanup

【问题讨论】:

标签: javascript jquery-ui dialog scrollbar


【解决方案1】:

如果您不想或无法升级到 jQuery UI 1.10,这是适合您的解决方案:

https://stackoverflow.com/a/7740756/354756

【讨论】:

    【解决方案2】:

    此错误已在 jQueryUi-1.10 中修复。 这是http://bugs.jqueryui.com/ticket/4671问题的链接。

    【讨论】:

      【解决方案3】:

      您可以通过以下方式启用滚动条:

      html {overflow-y: scroll;}
      

      您可以以编程方式添加该 CSS,这样它就不会影响网站的每个页面,也不会影响设计。

      而且,您可能必须取消绑定模态对话框劫持的鼠标事件:

      $("#longdialog").dialog({
           open: function(event, ui) {
              window.setTimeout(function() {
                  jQuery(document).unbind('mousedown.dialog-overlay')
                                  .unbind('mouseup.dialog-overlay');
              }, 100);
          },
         modal:true
      });
      

      Scrollbar problem with jQuery UI dialog in Chrome and Safari

      【讨论】:

      • 您好,感谢您的回答,但不幸的是,这看起来不起作用。我在示例中添加了这个 CSS 部分,但它仍然无法正常工作:jsbin.com/ozapol/5
      • 实际上它可以在 Internet Explorer 上运行,但它不能在 Chrome 上运行......有什么想法吗?
      • @NicolasThery 在 Mac 和 PC 上的 Chrome 中为我工作。不知道为什么它不适合你。
      • 它不适用于 Windows 版本 16.0.912.75 和我刚刚安装的版本 16.0.912.77。
      • @NicolasThery 是的,但它只适用于滚轮。试试这个:jsbin.com/ujagov/edit#javascript,html
      【解决方案4】:

      将以下代码添加到您的 css 文件中:

       .ui-dialog .ui-dialog-content {
          overflow-y: scroll;
      
       }
       #longdialog{
          height: 450px;
      
       }
      

      溢出不起作用,因为高度设置为自动,为容器div定义一个特定的高度

      【讨论】:

      • 很抱歉,我不希望对话框内的滚动条,而是整个页面。我不想在我的界面中有很多滚动条。我更新了示例:jsbin.com/ozapol/9
      猜你喜欢
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2011-10-05
      相关资源
      最近更新 更多