Как вы можете отключить полосы прокрутки в диалоговом окне jQuery UI?
Вопрос
Кто-нибудь знает, есть ли способ отключить полосы прокрутки в диалоговом окне jquery? Содержимое, которое у меня есть в div, составляет 300 пикселей, но в диалоговом окне установлено значение 200 пикселей. Он автоматически ставит полосы прокрутки, но я не хочу их. Я добавлю это сам ко второму div, который делает его больше, чем окно. Любая помощь приветствуется.
Решение
Вы имеете в виду виджет диалогового окна jQuery UI ?
Вы можете передать параметр при его создании, чтобы указать его высоту, например.
$('.selector').dialog({ height: 350 });
Сделайте его выше, чем содержимое, которое вы в него помещаете, и я подозреваю, что вы станете золотым.
Другие советы
Я решил проблему следующим образом:
.dialog({
title: $(this).attr("data-dialog-title"),
closeOnEscape: true,
close: function () { $(this).remove() },
draggable: true,
position: 'center',
width: 500,
height: 'auto',
modal: true,
open: function (event, ui) {
$('#myDialogId').css('overflow', 'hidden'); //this line does the actual hiding
}
});
Я не знаю точно, что вы подразумеваете под «диалоговым окном jquery», но стандартным способом отключения полос прокрутки было бы установить свойство переполнения div на «скрытый»
поместите это в свой CSS-файл:
div.class_name {
overflow: hidden;
}
Переполнение: скрытое сработало для меня. При настройке только параметров высоты / ширины полосы прокрутки будут по-прежнему отображаться в зависимости от размера текста и масштаба. Р>
Решение без CSS или фиксированной высоты:
Я думаю, что лучшее решение вышеуказанной проблемы - сделать динамическую высоту диалога, высота должна автоматически изменяться в соответствии с содержимым, когда содержание увеличивается, модальная высота должна увеличиваться. Для этого используйте высоту " auto " опция, предоставляемая модальным интерфейсом Jquery, регулирует модальную высоту в соответствии с содержимым, поэтому необходимо добавить 'overflow: hidden' или 'height: 350'
$( "#dialog" ).dialog({
modal : true,
height:"auto"
});
Это убрало полосы прокрутки:
$( "#dialog" ).dialog({
autoOpen: false,
resizable: false,
dialogClass: 'info',
height: 'auto',
width: 'auto',
show: { effect: "blind", duration: 1000 },
hide: {effect: "explode", duration: 1000 },
draggable: true,
open: function (event, ui) {
$(this).dialog('open');
},
close: function (event, ui) {
cleanup() ;
}
});
В приведенном ниже примере я также добавил 'resizable = false' для диалога. Так что любой переполненный текст нельзя увидеть, изменив размер диалогового окна.
$("a#registerServerStudio , a#regServer").click(function(e) {
//alert("login using POST is Clicked");
e.preventDefault();
registerSuccess = false;
regSSDlg = $("#regSS").dialog({
autoOpen: false,
height: 280,
width: 420,
modal: true,
resizable: false,
buttons: {
},
close: function() {
registerSuccess = false;
},
show:{effect:'bounce', duration: 100},
});
$('#regSS').css('overflow', 'hidden');
regSSDlg.prev(".ui-dialog-titlebar").css({"background":"#47669E", "color":"white", "font-size":"13px", "font-weight":"normal"}) ;
regSSDlg.dialog("open");
});