2012-01-20 27 views
7

正如你可以此鏈接查看, http://jsbin.com/ozapol/9jQuery的模式對話框禁用滾動條

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
+0

你爲什麼不嘗試添加對話框內的滾動條? – epignosisx

+0

因爲這不會在我的應用程序中產生敏感...對不起 –

+0

[Chrome和Safari中的滾動條問題與jQuery UI對話框](http://stackoverflow.com/questions/1617638/scrollbar-problem-with-jquery-ui-dialog-in-chrome-and-safari) – daniloquio

回答

5

你可以繼續啓用滾動條:

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

+0

你好,謝謝你的回答,但不幸的是,這看起來沒有工作。我在我的示例中添加了這個CSS部分,但它仍然不起作用:http://jsbin.com/ozapol/5 –

+0

實際上,它在Internet Explorer上工作,但它不在Chrome上......任何想法? –

+0

@NicolasThery適用於Mac和PC上的Chrome。不知道爲什麼它不適合你。 –

0

添加以下代碼到你的CSS文件:

.ui-dialog .ui-dialog-content { 
    overflow-y: scroll; 

} 
#longdialog{ 
    height: 450px; 

} 

的溢出不起作用,因爲高度被設置爲自動,定義一個特定高度的容器div

+0

對不起,但我不想在對話框中的滾動條,而是整個頁面。我不想在我的界面中有很多滾動條。我更新了這個例子:http://jsbin.com/ozapol/9 –