Twitter Bootstrap模式:如何删除向下滑动效果

ram*_*z15 162 javascript jquery jquery-ui twitter-bootstrap

有没有办法将Twitter Bootstrap Modal窗口动画从滑动效果更改为fadeIn或仅显示没有幻灯片?我在这里阅读了文档:

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

但是他们没有提到改变模态体滑动效果的任何选项.

Ros*_*one 354

只需fade从模态div中取出该类.

具体来说,改变:

<div class="modal fade hide">
Run Code Online (Sandbox Code Playgroud)

至:

<div class="modal hide">
Run Code Online (Sandbox Code Playgroud)

更新:对于bootstrap3,hide不需要该类.

  • @umassthrower是对的.只回答了如何没有过渡.这个答案不包括如何淡化而不是从顶部下拉的问题. (30认同)
  • 我不知道这是怎么回答正确的答案......它使模态弹出而没有淡入淡出,OP要求删除SLIDE,而不是FADE ...... (24认同)
  • 这需要更多的选票,其他答案是黑客 (18认同)
  • 虽然OP确实要求如何使其淡入,所以这些答案中的一些对于问题的替代形成是正确的.猜猜这只是一个糟糕的问题,因为它实际上是两个问题,没有人在一个答案中回答了这两个问题. (9认同)
  • 我等着保持淡入淡出并移除幻灯片,这个答案没有帮助.奇怪的引导程序使用它们的淡入淡出类来处理模态的幻灯片效果,因为淡入淡出在CSS中是完全独立的. (2认同)

And*_*ich 36

bootstrap使用的模式使用CSS3来提供效果,可以通过从模态容器div中删除相应的类来删除它们:

<div class="modal hide fade in" id="myModal">
   ....
</div>
Run Code Online (Sandbox Code Playgroud)

你可以看到这个模态有一个类.fade,意思是它被设置为淡入.in,意味着它将滑入.所以只需删除与你想要删除的效果相关的类,在你的情况下只是.in类.

编辑:刚刚运行了一些测试,看起来并非如此,.in该类是通过javascript添加的,尽管你可以用css修改他的slideDown行为,如下所示:

.modal.fade {
    -webkit-transition: none;
    -moz-transition: none;
    -ms-transition: none;
    -o-transition: none;
    transition: none;
}
Run Code Online (Sandbox Code Playgroud)

演示

  • 你还应该将它添加到背景中:`modal.fade,.modal-backdrop.fade`等... (2认同)

lor*_*key 30

如果你想让模态淡入而不是滑入(为什么还要调用它.fade?)你可以覆盖CSS文件中的类或者直接bootstrap.css使用它:

.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%;
}
Run Code Online (Sandbox Code Playgroud)

如果您不想要任何效果,只需fade从模态类中删除该类.

  • @dkrape`in`类由Bootstrap.js添加 (2认同)

vig*_*ity 25

我相信这些答案中的大部分都是针对bootstrap 2.我遇到了同样的问题,因为bootstrap 3并且希望分享我的修复.就像我以前对bootstrap 2的回答一样,这仍然会产生不透明度淡化,但不会进行幻灯片转换.

您可以更改modals.less或theme.css文件,具体取决于您的工作流程.如果你没有用更少的质量时间,我强烈推荐它.

少了,找到以下代码 MODALS.less

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

然后-25%改为0%

或者,如果您只使用css,请在以下位置找到以下内容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;
}
Run Code Online (Sandbox Code Playgroud)

然后更改-25%0%.

  • 我会在自定义样式表中覆盖这些样式,而不是编辑Bootstrap的样式表/ Less. (2认同)

Ale*_*ain 18

我通过覆盖.modal.fade自己的LESS样式表中的默认样式来解决这个问题:

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

这样可以保持淡入/淡出动画,但会移除向上/向下滑动动画.


vig*_*ity 11

我也不喜欢滑动效果.要解决这个问题,你所要做的就是使top.modal.fade和modal.fade.in 的属性相同.你也可以top 0.3s ease-out在转换过程中取消它,但留下它也没什么坏处.我喜欢这种方法,因为淡入/淡出有效,它只会杀死幻灯片.

.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%;
}
Run Code Online (Sandbox Code Playgroud)

如果你正在寻找一个bootstrap 3的答案,请看这里


jus*_*azz 11

我找到了删除幻灯片的最佳解决方案,但是通过在bootstrap.css之后调用的chosing的css文件中添加以下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;
}
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案也适用于 Bootstrap 4。谢谢! (2认同)