vue最简单的实现上、下、左、右带动画/遮罩效果的弹出层,话不多说直接上图附代码
<template>
<div>
<!-- 按钮 -->
<div class="openBtn" @click="openFun()">打开按钮</div>
<!-- 弹出层 -->
<div :class="['Popup',openBe?'openActive':'']">请在这里填放内容哦</div>
<!-- 遮罩层 -->
<div v-show="MaskBe" class="MaskCss" @click="closeFun()"></div>
</div>
</template>
<script>
export default {
data() {
return {
openBe:false, // 是否打开弹出层
MaskBe:false, // 是否开启遮罩层
};
},
methods: {
// 打开弹出层
openFun(){
this.MaskBe=true
this.openBe=true
},
// 点击遮罩则关闭弹层~
closeFun(){
this.MaskBe=false
this.openBe=false
}
}
};
</script>
<style>
.openBtn{
width: 100px;
height: 40px;
margin: 80px auto;
text-align: center;
line-height: 40px;
border-radius: 4px;
color: #fff;
background: skyblue;
}
/* 弹出层默认样式 */
.Popup{
width: 100%;
height: 500px;
background: skyblue;
position: fixed;
bottom: -500px;
z-index: 11000;
transition: all 0.25s linear;
}
/* 点击按钮是将盒子 bottom 值归零即可实现弹出效果,
同理,如需更改弹出方向只需将bottom改成top、left、right即可
(默认样式的方向也需一起更改哦) */
.openActive{
bottom: 0px !important;
}
/* 遮罩层样式 */
.MaskCss {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.3);
z-index: 10000;
}
</style>