2012-01-20 3 views
7

Как вы можете увидеть по этой ссылке, http://jsbin.com/ozapol/9,Jquery модальные диалоговые ОТКЛЮЧИТЬ на прокручивание

Jquery отключает скроллбары на некоторых версиях IE и последнюю версию хрома. (я еще не пробовал еще ...)

Есть ли способ удерживать полосы прокрутки для прокрутки длинного диалогового окна?

Спасибо! Bye

Nice решения для Internet Explorer (благодаря JK.)

html {overflow-y : scroll} 

Brutal обходного пути для 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

Возможный дубликат [Проблема с прокруткой в ​​диалоговом окне jQuery UI в Chrome и Safari] (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 Работает для меня в Chrome на Mac и ПК. Не уверен, почему он не работает на вас. –

0

Добавить следующий код в ваш CSS-файл:

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

} 
#longdialog{ 
    height: 450px; 

} 

переполнение не работает, потому что высота была установлена ​​на авто, определите определенную высоту для контейнера div

+0

Прошу прощения, но мне не нужна полоса прокрутки внутри диалогового окна, но для всей страницы. Я не хочу, чтобы в моем интерфейсе было много полос прокрутки. Я обновил пример: http: //jsbin.com/ozapol/9 –

Смежные вопросы