dialog模态框的封装是怎样,如何做
Admin 2022-08-13 群英技术资讯 914 次浏览
关于“dialog模态框的封装是怎样,如何做”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。这个是基于vue2的模态框封装,仿照elementUI而写的组件。
效果如图

首先我们需要一个遮罩层
<template>
<div class="myDialog">
<div v-if="visable" class="dialog_mask" @click="close"></div>
</div>
</template>
<style>
.dialog_mask {
width: 100%;
height: 100vh;
background-color: rgba(0, 0, 0, 0.418);
position: fixed;
top: 0;
left: 0;
z-index: 122;
}
</style>
然后是主体部分
<!-- 模态框内容部分 -->
<div v-if="visable" class="dialog_window" @mousedown="moveDialog">
<header>
<!-- 传入的标题 -->
<h5>{{ title }}</h5>
<!-- x号关闭 -->
<span @click="close">x</span>
</header>
<!-- 插槽插入中间的内容 -->
<div class="ctx">
<slot></slot>
</div>
<!-- 插槽插入底部按钮 -->
<div class="footer">
<slot name="footer"></slot>
</div>
</div>
props传入的值
props: {
visable: { // 数据显示隐藏
type: Boolean,
default: false,
},
title: { // 标题
type: String,
},
move: { // 是否可拖动
type: Boolean,
default: false,
}
},
对应的事件
methods: {
close() { // 关闭功能
this.$emit("update:visable", false); // .sync修饰符 父子组件同步更新
this.callBack(this.visable);
},
moveDialog(e) { // 拖动
if (!this.move) return false;
let odiv = e.target;
let disX = e.clientX - odiv.offsetLeft;
let disY = e.clientY - odiv.offsetTop;
document.onmousemove = (e) => {
let left = e.clientX - disX;
let top = e.clientY - disY;
odiv.style.left = left + "px";
odiv.style.top = top + "px";
};
document.onmouseup = (e) => {
document.onmousemove = null;
document.onmousedown = null;
};
},
},
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在开发cli工具时,往往离不开获取指令中各种参数信息,接下来本文将带着你如何在Node.js中获取执行时的参数
javascript改变图片链接地址的方法:【window.onload = function () {ImageSrc();} function ImageSrc() { var imgs = document.getEleme...】。
这篇文章主要给大家介绍的是vue-cli 介绍与安装,vue-cli是和vue进行深度组合的工具,可以快速帮我们创建vue项目,并且把一些脚手架相关的代码给我们创建好。真正使用vue开发项目,都是用vue-cli来创建项目的,下面文章详细内容,需要的朋友可以参考一下
用JS怎样写一个简单计数器,方法是什么?一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
目录使用create,mounted调用方法我之前有个错误的写法错误有2mounted方法和created区别使用create,mounted调用方法首先:我之前有个错误的写法错误有21,我一直以为在created里定义方法然后使用,其实这里的getCustomerInfo只是调用2,所有的方法都应该在methods里
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008