运用的知识点包括:

路由的配置

插槽

vue的过渡动画

路由重定向

router/index.js里面配置路由

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/home'
import About from '@/components/about' Vue.use(Router) export default new Router({
mode:'history',
routes: [
{
path: '/home',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
component: About
},
{ path: '/', redirect:'/home' } ]
})

app.vue

<template>
<div id="app">
<router-link :to="{path:'/home'}">home</router-link>
<router-link :to="{path:'/about'}">about</router-link>
<router-view/>
</div>
</template> <script>
export default {
name: 'App'
}
</script> <style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>

home.vue

<template>
<div class="home">
<p>{{msg}}</p>
<transition name="slide-fade">
<v-modal v-show="modalStatus" :title="title" :content="content" :btnType="btnType">
<slot>
    <button v-for="item in btnType" :class="item.class" @click="modalStatus=false">
      {{item.vlaue}}
    </button>
    </slot>
</v-modal>
</transition>
<button @click="openHomeModal()">打开modal</button> </div>
</template> <script>
import Modal from "@/components/modal.vue";
export default {
name: "HelloWorld",
data() {
return {
msg: "我是首页信息",
modalStatus: false,
title: "我是首页,我骄傲",
content: "我是首页的内容",
        btnType: [{"value":"确定","class":"danger"},{"value": "取消","class":"defalut"}]
    };
},
components: {
"v-modal": Modal
},
methods: {
openHomeModal() {
this.modalStatus = true;
}
}
};
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss"> /* 可以设置不同的进入和离开动画 */
/* 设置持续时间和动画函数 */
.slide-fade-enter-active {
transition: all .3s ease;
}
.slide-fade-leave-active {
transition: all .2s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to
/* .slide-fade-leave-active for below version 2.1.8 */ {
transform: translateY(-10px);
opacity: 0;
}
</style>

about.vue

<template>
<div class="about">
<p>{{aboutmsg}}</p>
<button @click="openHomeModal()">打开about里面的modal</button>
<transition name="slide-fade">
<v-modal v-show="modalStatus" :title="title" :content="content"> <slot>
     <button v-for="item in btnType" :class="item.class" @click="modalStatus=false">
      {{item.vlaue}}
      </button>
      </slot>
</v-modal>
</transition>
</div>
</template>
<script>
import Modal from "@/components/modal.vue";
export default {
data() {
return {
modalStatus: false,
aboutmsg: "我是关于页面",
title: "我是关于页面的title",
content: "我是关于页面的内容",
    btnType:["value":"确定","class":"default"]
};
},
methods: {
openHomeModal() {
this.modalStatus = true;
}
},
components: {
"v-modal": Modal
}
};
</script>
<style lang="scss"> /* 可以设置不同的进入和离开动画 */
/* 设置持续时间和动画函数 */
.slide-fade-enter-active {
transition: all .3s ease;
}
.slide-fade-leave-active {
transition: all .2s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to
/* .slide-fade-leave-active for below version 2.1.8 */ {
transform: translateY(-10px); //从上面下移,逐渐出现
opacity: 0;
}
</style>

modal.vue

<template>
<div class="modal">
<div class="header">{{title}}</div>
<div class="content">{{content}}</div>
<div class="footer">
<slot></slot>
</div>
</div>
</template>
<script>
export default{
data(){
return {}
},
props:['title','content'], }
</script>
<style lang="scss">
.modal {
width:500px;
height:400px;
position: absolute;
top:50%;
left:50%;
margin-toP:-250px;
margin-left:-200px;
border:1px solid #666;
.header {
height:60px;
line-height:60px;
text-align: center;
background:#666;
border-bottom: 1px solid #000;
box-sizing: border-box;
}
.content {
background:orange;
height:290px; }
.footer {
height:50px;
line-height: 50px;
button {
vertical-align: middle;
display: inline-block;
width:80px;
height:40px;
line-height: 40px;
color:#fff;
&.danger{
background:red; }
&.default{
background:#ddd;
} } }
}
</style>

做一个vue模态弹出框如何的更多相关文章

  1. 做一个iframe的弹出框

    群里有个人想在微信页面里面加弹出框.作为前端的我,想着不可能这样做.后来一个人说了: A:如果对方没有防盗链的话,你可以建个页面,内置iframe 到他的页面,然后把url 的参数也传入你的ifram ...

  2. Bootstrap模态弹出框

    前面的话 在 Bootstrap 框架中把模态弹出框统一称为 Modal.这种弹出框效果在大多数 Web 网站的交互中都可见.比如点击一个按钮弹出一个框,弹出的框可能是一段文件描述,也可能带有按钮操作 ...

  3. UIPresentationController - iOS自定义模态弹出框

    参考: https://developer.apple.com/library/archive/featuredarticles/ViewControllerPGforiPhoneOS/Definin ...

  4. 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-4 模态弹出框--结构分析

    模态弹出框--结构分析 Bootstrap框架中的模态弹出框,分别运用了“modal”.“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-con ...

  5. 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-3 模态弹出框

    模态弹出框(Modals) 这一小节我们先来讲解一个“模态弹出框”,插件的源文件:modal.js. 右侧代码编辑器(30行)就是单独引入 bootstrap 中发布出的“modal.js”文件. 样 ...

  6. 代码录播:jQueryMobile 实现一个简单的弹出框效果

    今天给大家带来的是 jQueryMobile 实现一个简单的弹出框效果,有兴趣的童鞋可以试试哦~ ^_^ 阅读原文:www.gbtags.com  

  7. bootstrap中的modal 模态弹出框不能放在 form_for里面,一弹出modal会自动submit掉form

    bootstrap中的modal 模态弹出框不能放在 form_for里面,一弹出modal会自动submit掉form

  8. html、css和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果

    模态框: html部分: <!-- 按钮 --> <button id="box" onclick="pop_box()">弹出框< ...

  9. 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-1导入JavaScript插件

    导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaScri ...

随机推荐

  1. 6、RNA-Seq Analysis Pipeline

    Created by Dhivya Arasappan, last modified by Dennis C Wylie on Nov 08, 2015 This pipeline uses an a ...

  2. struts2的package和result的标签的属性

    package的属性 1.name: 配置package元素时必须指定name属性,这是引用该包的唯一标识. 2.extends: 可选属性,指定该包继承的父包,子包可以从一个或多个父包中继承到拦截器 ...

  3. JavaScript学习系列8 - JavaScript中的关系运算符

    JavaScript中有8个关系运算符,分别是 ===, !===, ==, !=, <, <=, >, >= 1. 恒等运算符 (===) ===也叫做 严格相等运算符,它要 ...

  4. 【转】log4j.properties 详解与配置步骤 - edward0830ly的专栏 - 博客频道 - CSDN.NET

    一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失IN ...

  5. BZOJ 3211【线段树】

    题意: n个数,m个操作. 1,L,R  询问[L , R] 的总和. 2,L,R  将区间所有数都开根号. 思路: 区间和简单. 主要就是一个 区间所有元素相同的标记Same ,但是这样是不是要求太 ...

  6. uva 1614奇怪的股市(归纳法证明,贪心)

    uva 1614奇怪的股市(归纳法证明,贪心) 输入一个长度为n的序列a,满足\(1\le a_i\le i\),要求确定每个数的正负号,使得所有数的总和为0.例如a={1, 2, 3, 4},则4个 ...

  7. cogs 2620. [HEOI2012]朋友圈

    /*70分 被卡T*/ #include<iostream> #include<cstdio> #include<cstring> using namespace ...

  8. 运算符优先级 (JavaScript)

    运算符优先级描述了在计算表达式时执行运算的顺序.先执行具有较高优先级的运算,然后执行较低优先级的运算.例如,先执行相乘,再执行相加. JavaScript 运算符     下表列出了 JavaScri ...

  9. iOS客户端与网页交互文档

    很少和客户端打交道,这次由于做会活动,要和客户端配合做个分享的功能 这里总结下基本的流程,就是前端在H5 里调用客户端的方法即可 第一部分 客户端提供需求文档 网页请求设置 客户端发起请求时在HTTP ...

  10. Flask&&人工智能AI --1

    Flask初识,Response三剑客,jsonify以及send_file.Request,模板语言 Jinja2,用户登录例子,内置Sessio 一.Flask初识 首先,要看你学没学过Djang ...