UNPKG

lixin-web

Version:

vue and bootstrap

116 lines (108 loc) 2.61 kB
.modal{ .display(flex); .align-items(center); .justify-content(center); pointer-events: none; &.in{ pointer-events: auto; } } //iOS Safari position fixed click offset issue,not transform @media (min-width: @screen-md) and (device-aspect-ratio: 16/9),(device-aspect-ratio: 16/10){ .modal{ visibility: hidden; &.fade{ opacity: 1; .transition-duration(.45s); } &.in{ visibility: visible; .modal-dialog { .animation(modalComeIn .25s ease); visibility: visible; /* to keep @ final state */ } .modal-body { opacity: 1; transform: translateY(0) scale(1, 1); } } &.state-leave { .modal-dialog { .animation(modalHeadOut .35s ease .1s); visibility: visible; } .modal-body { opacity: 0; transform: translateY(0) scale(1, 1); .transition-delay(0s); .transition-duration(.35s); .transition-timing-function(ease); .translateY(25px); } } } .modal-dialog { visibility: hidden; margin-top: 10% \9; .box-shadow(2px 2px 8px 1px rgba(0,0,0,.2)); .backface-visibility(hidden); // helps render animation .transform(translate3d(0,0,0)); // helps render animation .transform-style(preserve-3d); // helps render animation > .close{ position: absolute; right: 8px; top: 5px; z-index:1; font-size: 24px; } } .modal-body { opacity: 0; .transform(translateY(0) scale(.8, .8) translateZ(0)); .transition-property(opacity, transform); .transition-duration(.25s); .transition-delay(.1s); } .modal-backdrop{ visibility: hidden; .transition(opacity .25s ease 0s, visibility linear .35s); &.in { visibility: visible; .transition-delay(0s); .transition-duration(.2s, 0s); } } } *::-ms-backdrop, .modal{display: block} @media @ie10hack { .modal{display: block} } *::-ms-backdrop, .modal-dialog{ margin-top: 10%;} @keyframes modalComeIn { 0% { visibility: hidden; opacity: 0; transform: scale(0.8, 0.8); } 65.5% { transform: scale(1.03, 1.03); } 100% { visibility: visible; opacity: 1; transform: scale(1, 1); } } @keyframes modalHeadOut { 0% { visibility: visible; opacity: 1; transform: translateY(0) scale(1, 1); } 100% { visibility: hidden; opacity: 0; transform: translateY(35px) scale(0.97, 0.97); } }