2009-10-25 10 views
28

Czy ktoś wie, czy istnieje sposób wyłączania pasków przewijania w oknie dialogowym jquery? Zawartość, którą mam w dziale wynosi 300 pikseli, ale okno dialogowe ma wartość 200 pikseli. Automatycznie umieszcza paski przewijania, ale ja ich nie chcę. Dodam go do drugiego elementu div, który sprawia, że ​​jest większy niż okno. Każda pomoc jest doceniana.Jak można wyłączyć paski przewijania w oknie dialogowym interfejsu użytkownika jQuery?

Odpowiedz

10

Czy masz na myśli jQuery UI dialog widget?

Możesz przekazać opcję, gdy ją utworzysz, aby określić jej wysokość, np.

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

Uczyń go wyższym niż treści, które w nim wkładasz, i podejrzewam, że będziesz złoty.

4

Nie wiem dokładnie co masz na myśli przez „okna dialogowego jquery”, ale standardowy sposób, aby wyłączyć suwakami byłoby ustawić właściwość przepełnienia div do „ukryte”

W takim przypadku należy css file:

div.class_name { 
    overflow: hidden; 
} 
+0

jquery (javascript wrapper of sorts) ma własne okna dialogowe. istnieją opcje jQuery do robienia podobnych rzeczy, ale nie znalazłem żadnego dla tej konkretnej wtyczki. nie mogę po prostu ustawić tej właściwości dla jquery – ngreenwood6

+3

jquery nie jest wrapperem javascript, jest to framework, który usuwa problemy z wieloma przeglądarkami i upraszcza przechodzenie DOM ... jeśli możesz określić, jakiej funkcji jquery używasz do generowania "okna dialogowego" wtedy mógłbym ci pomóc ... –

+2

Nie jestem pewna, dlaczego zostało to odrzucone tak bardzo, gdy jest to właściwy sposób robienia rzeczy. '.ui-dialog-content {overflow: hidden; } 'do wyłączania pasków przewijania we wszystkich oknach dialogowych. '# myDialogID {overflow: hidden; } 'tylko dla jednego. –

63

I rozwiązać problem tak:

.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

Czy możesz wyjaśnić, co zrobiłeś, aby wyłączyć pasek przewijania ? –

+0

Och, widzę ... dzięki! –

+5

Wystarczy rzucić szybką poprawkę dla komentujących tę konkretną odpowiedź (której użyłem dzięki człowiekowi btw). To, co usuwa paski przewijania, ukrywa przepełnienie dzięki tej sztuczce css, bardzo śliskiej.Ta część ukrywa się: "open: function (event, ui) { $ ('# myDialogId'). Css (" overflow "," hidden "); }" – unrealtrip

2

przelewu: ukryty pracował dla mnie. Podczas ustawiania tylko parametrów wysokości/szerokości paski przewijania nadal będą wyświetlane w zależności od rozmiaru tekstu i powiększenia.

1

ta usunęła suwakami:

$("#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

rozwiązanie bez CSS lub stałej wysokości:

Myślę, że najlepszym rozwiązaniem powyższego problemu jest, aby wysokość dialogowe dynamiczna, wysokość należy ustawić automatycznie, zgodnie z treścią, gdy zawartość zwiększa wysokość modalna powinna wzrosnąć. Aby to zrobić, należy wybrać opcję wysokość „auto” dostarczonego przez jQuery UI modalnym, to dostosowuje wysokość modalnego według treści więc potrzeba dodatku „overflow: hidden” lub „wysokość: 350”

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

}); 
0

W poniższym przykładzie Dodałem również "resizable = false" dla okna dialogowego. Aby nie można było zobaczyć żadnego tekstu przepełnienia, zmieniając rozmiar okna dialogowego.

$("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"); 
}); 
Powiązane problemy