2009-10-25 11 views
28

¿Alguien sabe si hay una forma de deshabilitar las barras de desplazamiento en el cuadro de diálogo de jquery? El contenido que tengo en el div es 300 px pero el diálogo está establecido en 200px. Coloca automáticamente las barras de desplazamiento pero no las quiero. Lo agregaré yo mismo al segundo div que lo hace más grande que la ventana. Cualquier ayuda es apreciada.¿Cómo se pueden deshabilitar las barras de desplazamiento en el cuadro de diálogo de la interfaz de usuario jQuery?

Respuesta

10

¿Quiere decir el jQuery UI dialog widget?

Puede pasar una opción cuando la crea para especificar su altura, p. Ej.

$('.selector').dialog({ height: 350 }); 

Hazlo más alto que el contenido que estás poniendo en él, y sospecho que estarías dorado.

4

No sé exactamente lo que quiere decir con un 'cuadro de diálogo jQuery', pero la forma estándar para desactivar las barras de desplazamiento sería la de establecer la propiedad de desbordamiento del div a 'oculto'

poner esto en su css file:

div.class_name { 
    overflow: hidden; 
} 
+0

jquery (un contenedor de javascript de tipo) tiene sus propios cuadros de diálogo. hay opciones en jquery para hacer cosas similares, pero no encontré ninguna para este complemento en particular. No puedo simplemente establecer esa propiedad para jquery – ngreenwood6

+3

jquery no es un contenedor de JavaScript, es un marco que abstrae los problemas entre navegadores y simplifica el cruce de DOM ... si puede especificar qué función de jquery está utilizando para generar el 'cuadro de diálogo' entonces podría ser capaz de ayudar ... –

+2

No estoy seguro de por qué esto fue downvoted tanto cuando es la forma correcta de hacer las cosas. '.ui-dialog-content {overflow: hidden; } 'para deshabilitar las barras de desplazamiento en todos los cuadros de diálogo. '#myDialogID {overflow: hidden; } 'por solo uno. –

63

me resolvió el problema como este:

.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 
    } 
}); 
+1

¿Puede explicar lo que hizo para deshabilitar la barra de desplazamiento? ? –

+0

Oh, ya veo ... ¡gracias! –

+5

Simplemente lanzando una corrección rápida para los comentaristas de esta respuesta en particular (que utilicé gracias hombre por cierto). Lo que elimina las barras de desplazamiento es ocultar el desbordamiento con ese truco css, muy resbaladizo.Esta parte oculta: "open: function (event, ui) { $ ('# myDialogId'). Css ('overflow', 'hidden'); }" – unrealtrip

2

El overflow: hidden trabajado para mí. Al configurar solo los parámetros de alto/ancho, las barras de desplazamiento seguirán apareciendo según el tamaño del texto y el zoom.

1

Esto elimina las barras de desplazamiento:

$("#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() ; 
    } 
}); 
2

Solución sin CSS o Altura fija:

Creo que la mejor solución al problema anterior es hacer que la altura de diálogo dinámico, la altura debe ajustarse automáticamente según el contenido, cuando el contenido aumenta, la altura modal debería aumentar. Para ello utilice la opción altura "auto" proporcionado por jQuery UI modal, se ajusta la altura modal según el contenido de modo necesidad de añadir 'overflow: hidden' o 'altura: 350'

$("#dialog").dialog({ 
modal : true, 
height:"auto" 

}); 
0

En el ejemplo siguiente También agregué 'resizable = false' para el diálogo. De modo que no se puede ver ningún texto de desbordamiento al redimensionar el diálogo.

$("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"); 
}); 
Cuestiones relacionadas