Bootstrap 3 现在使用 CSS 变换 translate3d 而不是 CSS 过渡,以使用 GPU 硬件加速获得更好的动画效果。
它使用以下 CSS(无缓动)
.modal.fade .modal-dialog {
-webkit-transform: translate3d(0, -25%, 0);
transform: translate3d(0, -25%, 0);
}
这是您可以用来从左侧滑入的 CSS
.modal.fade:not(.in) .modal-dialog {
-webkit-transform: translate3d(-25%, 0, 0);
transform: translate3d(-25%, 0, 0);
}
注意否定选择器。我注意到这是防止“.modal.in .modal-dialog”定义受到干扰所必需的。 注意:我不是 CSS 专家,所以如果有人能更好地解释这一点,请随意:)
如何从不同侧面滑入:
- 顶部:
translate3d(0, -25%, 0)
- 底部:
translate3d(0, 25%, 0)
- 左:
translate3d(-25%, 0, 0)
- 右:
translate3d(25%, 0, 0)
如果你想混合和匹配不同的滑动方向,你可以给模态分配一个像'left'这样的类...
<div class="modal fade left">
...
</div>
...然后使用 CSS 专门针对它:
.modal.fade:not(.in).left .modal-dialog {
-webkit-transform: translate3d(-25%, 0, 0);
transform: translate3d(-25%, 0, 0);
}
奖励 - 你可能会有点滑稽并以一个角度滑入:
- 左上角:
translate3d(-25%, -25%, 0)
- 右上角:
translate3d(25%, -25%, 0)
- 左下角:
translate3d(-25%, 25%, 0)
- 右下:
translate3d(25%, 25%, 0)
更新 (05/28/15):我更新了小提琴以显示替代角度
如果你想在 LESS 模板中使用它,你可以使用 BS3 的 vendor-prefix mixin(只要它包含在内)
.modal.fade:not(.in) .modal-dialog {
.translate3d(-25%, 0, 0);
}