如何使用vue slot创建一个模态框的实例代码


Posted in Javascript onMay 24, 2020

【1】遮罩层:承载内容,管理样式布局。

【2】内容层:控制遮罩层的显示与否。

遮罩层和内容区之间应该解耦。遮罩层和内容区之间应该解耦。遮罩层和内容区之间应该解耦。

遮罩层不依赖于内容区,内容是放置在遮罩层里的,至于内容区里的内容是什么,遮罩层完全不用在意。因此可以在遮罩层里采用插槽。

遮罩层的实现

<div class="common-mask" v-if="visible">
 <slot name="head"></slot>
 <slot name="body"></slot>
 <slot name="foot"></slot>
 </div>
<style scoped lang='scss'>
 .common-mask {
 position: fixed;
 top: 0;
 bottom: 0;
 left: 0;
 right: 0;
 background: rgba($color: #000000, $alpha: 0.75);
 display: flex;
 justify-content: center;
 align-content: center;
 z-index: 4;
 }
</style>

内容层的实现

<Vue-Modal :visible="visible">
 <div slot="head">head</div>
 <div slot="body">body</div>
 <div slot="foot">
 <button class="common-btn" @click="close">Close</button>
 </div>
 </Vue-Modal>

PS:vue组件模态框实现方式

// 组件代码

<template>
<div>
 <div class="dialog-modal"> <!-- 根元素,z-index 需要高于父容器其他元素 -->
  <div class="dialog-wrapper" @click="onClose" v-show="isShow"></div> <!-- 加载一个具有透明度的背景,使根元素透明,子元素会继承该透明度 -->
  <transition name="drop">
    <div class="dialog-container" v-show="isShow"> <!-- 模态框容器,z-index 需要高于背景 -->
      <span class="close-btn" @click="onClose">x</span>
      <slot>
        <p>hello</p>
      </slot>
    </div>
  </transition>
 </div>
</div>
</template>
<script>
  export default {
    props: {
      isShow:{
        type: Boolean,
        default: false
      }
    },
    methods: {
      onClose(){
        this.$emit('on-close');
      }
    }
  }
</script>
<style>
.drop-enter-active {
 transition: all .5s;
}
.drop-leave-active {
 transition: all .3s;
}
.drop-enter {
 transform: translateY(-500px);
}
.drop-leave-active {
 transform: translateY(-500px);
}  
 
  .dialog-modal{
    position: absolute;
    z-index: 5;
  }
  .dialog-wrapper
  {
    position: fixed;
    height: 100%;
    width: 100%;
    z-index: 5;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
   
  }
  .dialog-wrapper{
    background-color: #eee;
    opacity: .9;
  }
  .dialog-container{
    position: fixed;
    z-index:80;
    top: 10%;
    left: 25%;
    width: 50%;
    /* margin: 0 auto; */
    background-color: #eee;
    border-radius: 3px;
    box-shadow: 0 5px 15px rgba(0,0,0,.5);
  }
  span.close-btn{
    padding: 0 5px;
    float: right;
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
  }
</style>

// 组件使用

//导入模态对话框
import modal from './plugins/dialog'
// 在使用组件
<modal></modal>

<modal @on-close="closeThis('isShowLog')":is-show='isShowLog'><login></login></modal>

总结

到此这篇关于如何使用vue slot创建一个模态框的文章就介绍到这了,更多相关vue slot创建模态框内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js滚动条回到顶部的代码
Dec 06 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
JS获取鼠标坐标的实例方法
Jul 18 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 Javascript
JS实现的Select三级下拉菜单代码
Aug 20 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
Feb 25 Javascript
基于jQuery的ajax方法封装
Jul 14 Javascript
微信小程序 判断手机号的实现代码
Apr 19 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
Aug 23 Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 Javascript
NProgress显示顶部进度条效果及使用详解
Sep 21 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
May 28 Javascript
使用React代码动态生成栅格布局的方法
May 24 #Javascript
ES6对象操作实例详解
May 23 #Javascript
ES6函数和数组用法实例分析
May 23 #Javascript
ES6箭头函数和扩展实例分析
May 23 #Javascript
ES6新增的数组知识实例小结
May 23 #Javascript
ES6扩展运算符和rest运算符用法实例分析
May 23 #Javascript
JavaScript组合设计模式--改进引入案例分析
May 23 #Javascript
You might like
我的论坛源代码(六)
2006/10/09 PHP
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php格式化json函数示例代码
2016/05/12 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
python3中bytes和string之间的互相转换
2017/02/09 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
python3大文件解压和基本操作
2017/12/15 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
Python中作用域的深入讲解
2018/12/10 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
Python3 元组tuple入门基础
2020/02/09 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
2014端午节活动策划方案
2014/01/27 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
工作收入住址证明
2014/10/28 职场文书
期末考试复习计划
2015/01/19 职场文书
搞笑结婚保证书
2015/05/08 职场文书
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android