css这样实现
html如下
.download-block{
width:90%
height:100px
background:#0b0e32
/*margin: 100px auto 0*/
margin:0 auto
position:absolute
left:0
right:0
transition-duration:2s
opacity:0.7
}
.download-block1{
background:transparent
height:100px
overflow:hidden
position:relative
left:0
top:-100px
right:0
padding-top:100px
transition-duration:2s
opacity:0.7
cursor:pointer
}
.download-block1:hover{
padding-top:0
transition-duration:2s
opacity:0.7
}
前言:VUE弹窗动画建议不要参考官网封装好的的transition,本来很简单的一个需要,越看越晕。
先上源码,看不懂再往下看:
开发流程:
1.先写好一个不带动画的弹窗组件,share_cover为遮罩DIV,share_content为内容DIV
2.(核心)
弹窗动画,我们要给内容DIV的CSS加个animation属性。这里我们给animation设置了三个值:动画CSS名,时间,动画播放次数
3.动画CSS名,按照组件功能命名就行,动画效果在@keyframes里面配置
keyframes后面跟动画名,0%表示动画开始的DIV样式,会覆盖掉animation所在DIV的属性。
可以把0%当作vi-if=false时来理解,动画刚开始时候DIV的样式。
比如我们这里0%的时候bottom设置为-5.5rem,那么share_content里面的bottom会开始会被替换成-5.5rem.
5.同理,如果我们想把动画由从上到下换成从中间一个点展开,也是改keyframes
更多动画效果可以参考 这个 ,直接预览看里面的样式文件,拉倒keyframes那一块即可