当前位置: 首页 > news >正文

vue设置每次加载页面时展示一个双开门效果

一、首先创建一个双开门的蒙层组件

<!-- DoorOverlay.vue -->
<template><div v-if="isVisible" class="door-overlay"><div class="door left-door"></div><div class="door right-door"></div></div></template><script>export default {data() {return {isVisible: false};},methods: {show() {this.isVisible = true;},hide() {this.isVisible = false;}}};</script><style scoped>.door-overlay {position: fixed;top: 0;left: 0;width: 100%;height: 100%;display: flex;justify-content: space-between;align-items: center;/* background-color: rgba(0, 0, 0, 0.5); */z-index: 9999;overflow: hidden;}.door {width: 50%;height: 100%;background-color: #4891DA;transition: transform 0.5s;}.left-door {transform: translateX(0);}.right-door {transform: translateX(0);}.door-overlay.hide .left-door {transform: translateX(-100%);}.door-overlay.hide .right-door {transform: translateX(100%);}</style>

二、在router的index.js文件中引用

import Vue from 'vue'
import VueRouter from 'vue-router'import DoorOverlay from '@/components/DoorOverlay'Vue.use(VueRouter)const router = new VueRouter({mode: 'hash',routes:[ {path: '/',// 默认打开后就是这个主页component: () => import('@/components/Home/Home'),}]}) // 创建 DoorOverlay 实例
const doorOverlay = new Vue(DoorOverlay).$mount();
document.body.appendChild(doorOverlay.$el);// 全局前置守卫
router.beforeEach((to, from, next) => {doorOverlay.show();setTimeout(() => {next();}, 100); // 设置动画持续时间
});// 全局后置守卫
router.afterEach(() => {setTimeout(() => {doorOverlay.$el.classList.add('hide');setTimeout(() => {doorOverlay.hide();doorOverlay.$el.classList.remove('hide');}, 500); // 设置动画持续时间}, 100); // 设置动画持续时间
});export default router;

三、在App.vue文件中使用蒙层组件

<template><div id="app"><Header></Header><!-- 路由挂载 --><router-view></router-view><Footer></Footer></div>
</template><script>
import Header from '@/components/Header/Header'
import Footer from '@/components/Footer/Footer'
import DoorOverlay from './components/DoorOverlay'export default {name: 'App',components: {Header,Footer,DoorOverlay}
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;
}
a{text-decoration: none;color: #000000;
}
li{list-style: none;
}
*{margin: 0;padding: 0;
}
@media screen and (max-width:768px) {/* #app {padding-top:200px;} */
}
</style>

四、效果展示

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 芯感智最新流量传感器GF*000系列应用于医疗方向
  • IoTDB 入门教程 基础篇⑪——Data导入导出工具
  • Vue3+TS+element plus实现一个简单列表页面
  • 《Milvus Cloud向量数据库指南》——Milvus Cloud——Ivy.ai业务创新的坚实基石
  • 两个月后,我又开发了一款图片制作工具
  • 【Golang 面试 - 进阶题】每日 3 题(十三)
  • 高通8255 Android Virtio Virtio-IIC 配置方法
  • WPF学习(2)-UniformGrid控件(均分布局)+StackPanel控件(栈式布局)
  • 优秀的行为验证码的应用场景与行业案例
  • rancher v2.4.17安装部署并授权永久使用
  • 动手学深度学习V2每日笔记(经典卷积神经网络LeNet)
  • 0205其它新型电力电子器件
  • C语言 | Leetcode C语言题解之第324题摆动排序II
  • word加密文档忘记密码要如何打开
  • Linux的目录文件函数接口,链接文件函数接口,获得文件详细信息
  • 【Amaple教程】5. 插件
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • JavaScript创建对象的四种方式
  • JavaScript对象详解
  • Java超时控制的实现
  • JWT究竟是什么呢?
  • React组件设计模式(一)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring Boot快速入门(一):Hello Spring Boot
  • VuePress 静态网站生成
  • 闭包--闭包之tab栏切换(四)
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 听说你叫Java(二)–Servlet请求
  • 移动端解决方案学习记录
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (11)MATLAB PCA+SVM 人脸识别
  • (13)DroneCAN 适配器节点(一)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (翻译)terry crowley: 写给程序员
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (六)vue-router+UI组件库
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)Oracle存储过程编写经验和优化措施
  • **PHP分步表单提交思路(分页表单提交)
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • . Flume面试题
  • .gitignore
  • .htaccess 强制https 单独排除某个目录
  • .net 7 上传文件踩坑
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .net后端程序发布到nignx上,通过nginx访问
  • .NET下的多线程编程—1-线程机制概述
  • /etc/sudoer文件配置简析