IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> vue-demo 给popup页面添加过渡动画效果 -> 正文阅读

[游戏开发]vue-demo 给popup页面添加过渡动画效果

效果图

?

?

1. 首先创建两个文件夹

2. 在路由表中配置路由

?

import Vue from 'vue'
import VueRouter from 'vue-router'
import Homepage from '../views/Homepage.vue' //引入

Vue.use(VueRouter)

const routes = [
    {
    path: '/',
    redirect: "/homepage"
  },
  {
    path: '/homepage',
    name: 'Homepage',
    component: Homepage,
    children: [
      {
        path: 'popup', //这里记得不要有/杆,(就按这样写就行)      要么写全 /homepage/popup
//因为以'/'开头的嵌套路径会被当作根路径,所以子路由上不用加'/';在生成路由时,主路由上的path会被自动添加到子路由之前,所以子路由上的path不用在重新声明主路由上的path了
        component: () => import(/* webpackChunkName: "popup" */ '../views/Popup.vue')
      }
    ]
  },

]

// 重定向bug修复
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location, onResolve, onReject) {
  if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
  return originalPush.call(this, location).catch(err => err)
}

const router = new VueRouter({
  routes
})

export default router

3. 实现淡入淡出的过渡效果

3.1 首先可以去Vue的官网看下<Transition><Transition />这个标签如何使用??Vue.js

3.2 写一个宽100px;高100px的盒子,再对盒子做一个显示控制隐藏的v-show判断

?视图层

 <div class="mymodal" v-show="showModal"></div>

数据层

data () {
    return {
    showModal:false
  }
},
methods: {
      showPopup () {
        this.showModal = !this.showModal
      }
  },

?css

.mymodal{
  width: 100px;
  height: 100px;
  background: skyblue;
}

/*
  fade-enter 淡入的初始位置 与 fade-leave-to 淡出的终止位置一样 opacity 0;
  fade-enter-to 淡出的初始位置 与 fade-leave 淡入的终止位置一样 opacity 1;
*/

// 首页内容的淡入淡出  
.fade-enter, .fade-leave-to{
  opacity: 0;
}
//中间过渡效果
.fade-enter-active,.fade-leave-active{
  transition: opacity .5s linear;
}
.fade-enter-to, .fade-leave{
  opacity: 1;
}

?3.3初步效果

?4. 跳转到popup页面

  methods: {
      showPopup () {
        this.showModal = !this.showModal;
        this.$router.push("/homepage/popup") //路由跳转
      }
  },

4.1 popup页面的css样式 (因为我想让它从右边往左边跳)

  .popup{
    position: absolute;
    top: 0;
    width: 100%;
    min-height: 100%;
    background: #efefef;
  }

5. 给 <router-view>标签添加滑动效果

?

?

?

?5.1 效果实现了,但是有个bug,回来的时候小skyblue方块无法隐藏

我们可以利用路由的路径来控制显示隐藏? 不需要 showModal 我们定义的这个来作为控制了

然后通过打印路由

methods: {
      showPopup () {
        this.$router.push("/homepage/popup")
        console.log(this.$route);
      }
  },

可以得到?

?那么我们可以在这里判断

 <Transition name="fade">
        <div class="mymodal" v-show="$route.fullPath=='/homepage/popup'"></div>
        </Transition>

6.? 最后完成效果图

?7. 主要代码

<template>
  <div>
      <van-search
          v-model="inputValue"
          shape="round"
          readonly
          placeholder="请输入搜索关键词"
          @click="showPopup"
        />

        <Transition name="fade">
        <div class="mymodal" v-show="$route.fullPath=='/homepage/popup'"></div>
        </Transition>

        <!-- 父级路由显示对应的子路由 要用 <router-view /> -->
        <Transition name="slide">
        <router-view />
        </Transition>
  </div>
</template>

<script>
export default {

  data() {
    return {
    inputValue:"",
    };
  },

  methods: {
      showPopup () {
        this.$router.push("/homepage/popup")
        console.log(this.$route);
      }
  },
};
</script>

<style scoped lang="less">
.mymodal{
  width: 100%;
  height: 100%;
  position: fixed;
  left: 0;
  top: 0;
  background: #000;
}
// 滑动
.slide-enter, .slide-leave-to{
  right: -100%;//为什么是-100%呢 可以想象一下
}

.slide-enter-active, .slide-leave-active{
  transition: right .5s linear ;
}

.slide-enter-to, .slide-leave{
  right: 0;
}
/*
  淡入的初始位置 与 淡出的终止位置一样 opacity 0;
  淡出的初始位置 与 淡入的终止位置一样 opacity 1;
*/
// 首页内容的淡入淡出  start
.fade-enter, .fade-leave-to{
  opacity: 0;
}
.fade-enter-active,.fade-leave-active{
  transition: opacity .5s linear;
}
.fade-enter-to, .fade-leave{
  opacity: 1;
}
</style>

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:52:21  更:2022-05-05 11:55:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 11:09:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码