做一个vue模态弹出框如何
运用的知识点包括:
路由的配置
插槽
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>
</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: "我是首页的内容",
};
},
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>
</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模态弹出框如何的更多相关文章
- 做一个iframe的弹出框
群里有个人想在微信页面里面加弹出框.作为前端的我,想着不可能这样做.后来一个人说了: A:如果对方没有防盗链的话,你可以建个页面,内置iframe 到他的页面,然后把url 的参数也传入你的ifram ...
- Bootstrap模态弹出框
前面的话 在 Bootstrap 框架中把模态弹出框统一称为 Modal.这种弹出框效果在大多数 Web 网站的交互中都可见.比如点击一个按钮弹出一个框,弹出的框可能是一段文件描述,也可能带有按钮操作 ...
- UIPresentationController - iOS自定义模态弹出框
参考: https://developer.apple.com/library/archive/featuredarticles/ViewControllerPGforiPhoneOS/Definin ...
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-4 模态弹出框--结构分析
模态弹出框--结构分析 Bootstrap框架中的模态弹出框,分别运用了“modal”.“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-con ...
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-3 模态弹出框
模态弹出框(Modals) 这一小节我们先来讲解一个“模态弹出框”,插件的源文件:modal.js. 右侧代码编辑器(30行)就是单独引入 bootstrap 中发布出的“modal.js”文件. 样 ...
- 代码录播:jQueryMobile 实现一个简单的弹出框效果
今天给大家带来的是 jQueryMobile 实现一个简单的弹出框效果,有兴趣的童鞋可以试试哦~ ^_^ 阅读原文:www.gbtags.com
- bootstrap中的modal 模态弹出框不能放在 form_for里面,一弹出modal会自动submit掉form
bootstrap中的modal 模态弹出框不能放在 form_for里面,一弹出modal会自动submit掉form
- html、css和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果
模态框: html部分: <!-- 按钮 --> <button id="box" onclick="pop_box()">弹出框< ...
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-1导入JavaScript插件
导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaScri ...
随机推荐
- mongodb 查询数据
MongoDB概念解析: 等同于SQL的数据库表:collectiondocument:等同于SQL的数据记录行field:等同于SQL的数据字段表连接,MongoDB不支持主键,MongoDB自动将 ...
- 荧光分子的dynamic quenching 和 通常说的quenching的区别?
quenching有两种,学术上分为dynamic quenching 和static quenching,我们通常说的quenching就是 static quenching. static que ...
- 第四课4、ROS客户端
ROS客户端提供一些列库文件用于用户开发.它利用许多ROS概念并使它通过代码可以获取. 下面是ROS程序中的接口 ROSCPP客户端(c++客户端) 首先新建一个包 然后catkin_make一下 在 ...
- Git error: unable to create file xxx: Filename too long
一.问题描述 在使用 git 时,提示 error: unable to create file xxx: Filename too long error: unable to create file ...
- Ajax的完整兼容各种浏览器版本代码
<script type="text/javascript"> function createAjax(){ var request=false; //window对象 ...
- KONG 安装 (在 CentOS 7 中)
1. 下载安装包: https://bintray.com/kong/kong-community-edition-rpm/download_file?file_path=centos/7/kong ...
- 七层登录——VB.NET版
敲完三层后,感觉还是对三层架构没有那么亲切,和小伙伴交流后,他们说多多敲几遍,就懂了,其实就是那么几条线,所以:不管会不会,先去做吧! 下面是关于七层的包图: 我的解决方案: 代码部分: U层: &l ...
- 解读人:范徉,Methylome and Metabolome Analyses Reveal Adaptive Mechanisms in Geobacter sulfurreducens Grown on Different Terminal Electron Acceptors(甲基化组学和代谢组学分析发现Geobacter sulfurreducens生长在不同电子终受体中的适应机制)
发表时间: (2019年4月) IF:3.950 单位: Fujian Provincial Key Laboratory of Soil Environmental Health and Regul ...
- Tomcat热部署的实现原理
Tomcat热部署机制 对于Java应用程序来说,热部署就是在运行时更新Java类文件.在基于Java的应用服务器实现热部署的过程中,类装入器扮演着重要的角色.大多数基于Java的应用服务器,包括EJ ...
- Maven整合Eclipse进行Java项目开发
一.Maven的配置 ①要求当前系统环境下配置了JAVA_HOME 在CMD命令行中输入:echo %JAVA_HOME% 如果能出来JDK的安装目录,说明我们配置了JAVA环境 ②将Maven的ZI ...