vue点击按钮弹出一个框
时间: 2023-09-24 08:14:26 浏览: 107
vue+elementui实现点击table中的单元格触发事件--弹框
5星 · 资源好评率100%
你可以使用Vue.js的弹框组件来实现这个功能。以下是一个简单的示例:
首先,在你的Vue组件中,你需要导入弹框组件并注册它:
```javascript
<template>
<div>
<button @click="showModal">点击打开弹框</button>
<modal :show="show" @close="closeModal">
<h2>这是一个弹框</h2>
<p>点击外部区域或按钮关闭弹框</p>
</modal>
</div>
</template>
<script>
import Modal from './Modal.vue';
export default {
components: {
Modal
},
data() {
return {
show: false
}
},
methods: {
showModal() {
this.show = true;
},
closeModal() {
this.show = false;
}
}
}
</script>
```
然后,你需要创建一个弹框组件。这个组件需要接收一个`show`属性来控制弹框是否显示,以及一个`close`事件来关闭弹框。
```javascript
<template>
<div class="modal-mask" v-if="show">
<div class="modal-wrapper">
<div class="modal-container">
<div class="modal-header">
<slot name="header"></slot>
<button class="modal-close-button" @click="$emit('close')">×</button>
</div>
<div class="modal-body">
<slot></slot>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
show: Boolean
}
}
</script>
<style>
.modal-mask {
position: fixed;
z-index: 9998;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, .5);
display: table;
transition: opacity .3s ease;
}
.modal-wrapper {
display: table-cell;
vertical-align: middle;
}
.modal-container {
width: 300px;
margin: 0px auto;
padding: 20px 30px;
background-color: #fff;
border-radius: 2px;
box-shadow: 0 2px 8px rgba(0, 0, 0, .33);
transition: all .3s ease;
font-family: Helvetica, Arial, sans-serif;
}
.modal-header h3 {
margin-top: 0;
color: #42b983;
}
.modal-body {
margin: 20px 0;
}
</style>
```
最后,在你的CSS文件中,你可以为弹框添加样式。这个样式只是一个示例,你可以根据自己的需要进行修改。
这就是一个简单的Vue.js弹框组件。当用户点击按钮时,弹框会出现。当用户点击外部区域或按钮时,弹框会关闭。
阅读全文