2015-09-29 10 views
5

Ho creato più modal dialog con bootstrap v.3.3.5. quando ho lanciato il primo modal dialog, la barra di scorrimento a destra funziona bene, ma dopo aver lanciato il secondo modal dialog e chiuso, la barra di scorrimento scompare.Barra di scorrimento finestra di dialogo modale multipla Bootstrap v.3.3.5 non funzionante

In v.3.0.0 bootstrap non c'è alcun problema, come si può vedere in seguito demo

modal dialog with bootstrap v.3.0.0

Ma, in v.3.3.5 bootstrap c'è problema esiste

modal dialog with bootstrap v.3.3.5

+0

Quindi, in '3.0.0' versione suo lavoro giusto? –

+0

sì per scroll bar, controlla il mio esempio per favore –

risposta

12

DEMO

Per qualche ragione sta rimuovendo la mia classe modal-open dal corpo e questa barra di scorrimento scompare. Così qui è un trucco per catturare l'evento close di .modal e verificare se eventuali .modal è aperto e se sì, aggiungere la classe .modal-open a body

$("#myModal2").on('hidden.bs.modal', function (event) { 
    if ($('.modal:visible').length) //check if any modal is open 
    { 
    $('body').addClass('modal-open');//add class to body 
    } 
}); 

Ora, se si dispone di più modali che nidificano dentro l'altro, basta sostituire $("#myModal2") con $(document)

UPDATE

Ultimamente sono venuto a sapere che questo può essere fatto con puro CSS con solo una linea, come di seguito:

.modal{ 
    overflow:auto !important; 
} 

UPDATED DEMO

+0

Anytime .. Happy coding .. :) –

+1

La correzione CSS ha funzionato per me. Posso attestare che questo è ancora un problema in Bootstrap 3.3.7. Grazie per la soluzione facile. –

+0

@RyanGriggs Anytime .. Happy coding .. :) –

1

fare una cosa, basta aggiungere in seguito al vostro CSS:

#myModal{ 
overflow:auto !important; 
} 

Speranza che aiuta !!

3

modali aggiunti dinamicamente

$(document).on('hidden.bs.modal', '.modal', function() { 
    if ($('body').find('.modal.in').length > 0) { 
     $('body').addClass('modal-open'); 
    } 
}); 

Aggiornamento per Bootstrap 4

$(document).on('hidden.bs.modal', '.modal', function() { 
    if ($('body').find('.modal.show').length > 0) { 
     $('body').addClass('modal-open'); 
    } 
}); 
Problemi correlati