Кто-нибудь знает, есть ли способ отключить полосы прокрутки в диалоговом окне jquery? Содержимое, которое у меня есть в div, составляет 300 пикселей, но диалоговое окно установлено на 200 пикселей. Он автоматически ставит полосы прокрутки, но я их не хочу. Я сам добавлю его во второй div, который сделает его больше, чем окно. Любая помощь приветствуется.
Как отключить полосы прокрутки в диалоговом окне пользовательского интерфейса jQuery?
Ответы (7)
Вы имеете в виду диалоговое окно 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
}
});
this
для ссылки на элемент HTML с диалоговым окном, поэтому: $(this).css('overflow', 'hidden');
- person 7ochem; 08.01.2014
{height: 'auto'}
и при этом предотвратить прокрутку. Спасибо за это. +1
- person Adrian Larson; 10.11.2016
Я не знаю точно, что вы подразумеваете под «диалоговым окном jquery», но стандартным способом отключения полос прокрутки было бы установить для свойства переполнения div значение «скрытый»
поместите это в свой файл css:
div.class_name {
overflow: hidden;
}
.ui-dialog-content { overflow: hidden; }
для отключения полос прокрутки во всех диалогах. #myDialogID { overflow: hidden; }
всего за один.
- person David Sherret; 30.03.2013
http://stackoverflow.com/a/7483426/1627888
- person Yo Ludke; 30.04.2014
Переполнение: скрытое сработало для меня. При установке только параметров высоты/ширины полосы прокрутки все равно будут отображаться в зависимости от размера текста и масштабирования.
Решение без css или фиксированной высоты:
Я думаю, что лучшим решением вышеуказанной проблемы является динамическая высота диалогового окна, высота должна автоматически регулироваться в соответствии с содержимым, когда содержимое увеличивается, модальная высота должна увеличиваться. Для этого используйте параметр высоты «авто», предоставляемый модальным пользовательским интерфейсом Jquery, он регулирует модальную высоту в соответствии с содержимым, поэтому необходимо добавить «переполнение: скрытый» или «высота: 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() ;
}
});
В приведенном ниже примере я также добавил «изменяемый размер = ложь» для диалогового окна. Так что любой текст переполнения не может быть виден при изменении размера диалогового окна.
$("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");
});