Bootstrap modal: comment supprimer L'effet Slide down

y a-t-il un moyen de changer L'animation modale de la fenêtre Bootstrap de Twitter d'un effet slide down à un effet fadeIn ou tout simplement afficher sans la diapositive? J'ai lu la documentation ici:

http://getbootstrap.com/javascript/#modals

mais ils ne mentionnent aucune option pour changer les effets de glissement modal du corps.

155
demandé sur STT LCU 2012-04-13 19:09:24

15 réponses

il suffit de retirer la classe fade de la division modale.

plus précisément, changer:

<div class="modal fade hide">

à:

<div class="modal hide">

mise à jour: pour bootstrap3, la classe hide n'est pas nécessaire.

341
répondu Rose Perrone 2014-04-04 20:59:58

les modaux utilisés par le bootstrap utilisent CSS3 pour fournir les effets et ils peuvent être supprimés en éliminant les classes appropriées de modals container div:

<div class="modal hide fade in" id="myModal">
   ....
</div>

comme vous pouvez le voir ce modal a une classe de .fade , ce qui signifie qu'il est réglé pour s'effacer et .in , ce qui signifie qu'il va glisser. Il suffit donc de supprimer la classe liée à l'effet que vous souhaitez supprimer, qui dans votre cas est juste la classe .in .

Edit: Just j'ai effectué quelques tests et il semble que ce ne soit pas le cas, la classe .in est ajoutée par javascript, bien que vous puissiez modifier le comportement de he slideDown avec css comme ceci:

.modal.fade {
    -webkit-transition: none;
    -moz-transition: none;
    -ms-transition: none;
    -o-transition: none;
    transition: none;
}

Démo

36
répondu Andres Ilich 2014-08-27 21:51:36

si vous aimez que le modal s'efface plutôt que de glisser (pourquoi est-il appelé .fade de toute façon?) vous pouvez écraser la classe dans votre fichier CSS ou directement dans bootstrap.css avec ceci:

.modal.fade{
    -webkit-transition: opacity .2s linear, none;
    -moz-transition: opacity .2s linear, none;
    -ms-transition: opacity .2s linear, none;
    -o-transition: opacity .2s linear, none;
    transition: opacity .2s linear, none;
    top: 50%;
}

si vous ne voulez pas d'effet, supprimez simplement la classe fade des classes modales.

30
répondu lorem monkey 2012-08-15 22:06:07

je crois que la plupart de ces réponses sont pour bootstrap 2. J'ai rencontré le même problème pour bootstrap 3 et je voulais partager mon fix. Comme ma réponse précédente pour bootstrap 2, cela fera quand même un fondu d'opacité, mais ne fera pas la transition de glissement.

vous pouvez changer les modèles.moins ou le thème.fichiers css, selon votre flux de travail. Si vous n'avez pas passé du temps avec moins, je vous le recommande vivement.

pour moins, trouver le code suivant dans MODALS.less

&.fade .modal-dialog {
  .translate(0, -25%);
  .transition-transform(~"0.3s ease-out");
}
&.in .modal-dialog { .translate(0, 0)}

puis remplacer le -25% par 0%

alternativement, si vous utilisez seulement le css, trouvez ce qui suit dans theme.css :

.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}

, puis remplacer -25% par 0% .

24
répondu viggity 2013-11-04 21:30:33

j'ai résolu ce problème en annulant la valeur par défaut .modal.fade styles dans ma propre feuille de style moins:

.modal {
  &.fade {
    .transition(e('opacity .3s linear'));
    top: 50%;
  }
  &.fade.in { top: 50%; }
}

cela maintient l'animation fade in / fade out mais supprime l'animation slide up / slide down.

18
répondu Alex Bain 2012-10-23 22:30:39

Je n'ai pas aimé l'effet de glissement non plus. Pour corriger cela, tout ce que vous avez à faire est de rendre l'attribut top le même pour les deux .modal.fondu et modal.fondu.in. Vous pouvez enlever le top 0.3s ease-out dans les transitions aussi, mais ça ne fait pas de mal de le laisser dedans. j'aime cette approche parce que le fade in/out fonctionne, il tue juste le slide .

.modal.fade {
  top: 20%;
  -webkit-transition: opacity 0.3s linear;
     -moz-transition: opacity 0.3s linear;
       -o-transition: opacity 0.3s linear;
          transition: opacity 0.3s linear;
}

.modal.fade.in {
  top: 20%;
}

si vous cherchez une réponse bootstrap 3, regardez ici

11
répondu viggity 2017-05-23 12:17:54

j'ai trouvé la meilleure solution que supprime la diapositive mais laisse le fondu est en ajoutant le css suivant dans un fichier css de votre choosing qui est invoqué après le bootstrap.css

.modal.fade .modal-dialog 
{
    -moz-transition: none !important;
    -o-transition: none !important;
    -webkit-transition: none !important;
    transition: none !important;

    -moz-transform: none !important;
    -ms-transform: none !important;
    -o-transform: none !important;
    -webkit-transform: none !important;
    transform: none !important;
}
10
répondu justinazz 2014-06-09 13:00:05

vous pouvez aussi écraser bootstrap.css tout simplement en enlevant le "top:-25%;"

une fois enlevé, le modal s'effacera sans l'animation de la diapositive.

2
répondu Amr Morsy 2013-04-27 09:53:31

il suffit de supprimer la classe fade et si vous voulez plus d'animations à effectuer sur le Modal, utilisez animate.classes css dans votre Modal.

2
répondu Kapil Kumar 2015-11-16 05:54:33

je travaille avec bootstrap 3 et le plugin modal Durandal JS 2. Cette question était au sommet des résultats de Google et comme aucune des réponses ci-dessus ne fonctionne pour moi, j'ai pensé que je partagerais ma solution pour les futurs visiteurs.

j'annule le moins de code par défaut de Bootstrap avec ceci dans mon propre moins:

.modal {
  &.fade .modal-dialog {
    .translate(0, 0);
    .transition-transform(~"none");
  }
  &.in .modal-dialog { .translate(0, 0)}
}

de cette façon, il ne me reste que l'effet de fondu, et pas de glissement.

1
répondu David 2014-05-01 09:45:41
.modal.fade, .modal.fade .modal-dialog {
    -webkit-transition: none;
    -moz-transition: none;
    -ms-transition: none;
    -o-transition: none;
    transition: none;
}
1
répondu SM Adnan 2015-01-11 11:18:38

regardez http://quickrails.com/twitter-bootstrap-modal-how-to-remove-slide-down-effect-but-leaves-the-fade /

.modal.fade .modal-dialog 
{
    -moz-transition: none !important;
    -o-transition: none !important;
    -webkit-transition: none !important;
    transition: none !important;
    -moz-transform: none !important;
    -ms-transform: none !important;
    -o-transform: none !important;
    -webkit-transform: none !important;
    transform: none !important;
}
1
répondu Konstantin XFlash Stratigenas 2018-08-25 18:41:30

voulait mettre à jour ceci. La plupart d'entre vous n'ont pas terminé ce problème. J'utilise Bootstrap 3. aucune des corrections ci-dessus n'a fonctionné.

pour supprimer l'effet glissement, mais garder le fondu. Je suis allé dans bootstrap css et (noté sur les sélecteurs suivants) - cela a résolu le problème.

 .modal.fade .modal-dialog{/*-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out*/}

 .modal.in .modal-dialog{/*-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)*/}
0
répondu timothymarois 2014-02-14 02:47:58

le CSS suivant fonctionne pour moi - en utilisant Bootstrap 3. Vous devez ajouter ce css après boostrap styles -

.modal.fade .modal-dialog{
    -webkit-transition-property: transform; 
    -webkit-transition-duration:0 ; 
    transition-property: transform; 
    transition-duration:0 ; 
}

.modal.fade {
   transition: none; 
}
0
répondu Ignacio Vazquez 2015-04-23 20:23:50

la question était claire: supprimer seulement la diapositive: Voici comment la changer dans Bootstrap v3

Dans les auxiliaires modaux.moins commenter la déclaration traduire:

&.fade .modal-dialog {
  //   .translate(0, -25%);
0
répondu Derry Birkett 2015-06-18 03:29:36