vue实现页面切换滑动效果


Posted in Javascript onJune 29, 2020

本文实例为大家分享了vue实现页面切换滑动的具体代码,供大家参考,具体内容如下

试着用Vue做了个页面切换时滑动的效果,如下示例,源码

vue实现页面切换滑动效果

这里使用了Vue的transition组件,具体可见文档

直接看实现过程

先在本机安装vue-cli

npm install -g @vue/cli

初始化一个项目

vue create hello-world

创建完毕后安装vue-router和vuex,现在vue-cli3支持图形化界面,可以直接在项目目录用ui启动,在管理页面点击安装

vue ui

然后建立这样一个项目结构

vue实现页面切换滑动效果

store.js

首先在vuex的仓库里存储页面切换的状态

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
 state: {
 states: 'turn-left'
 },
 mutations: {
 setTransition(state, states) {
 state.states = states
 }
 },
 actions: {

 }
})

建立四个切换用的页面

A,B,C,D换个颜色就行,记得在router.js里配置下路由,有问题可以去我的仓库看源码。

<template>
 <div class="A">
 <top title="a"></top>
 <bottom bg="red"></bottom>
 </div>
</template>

<script>
 import top from "../components/top.vue";
 import bottom from "../components/bottom.vue";
 export default {
 data() {
 return {};
 },
 components: {
 top,
 bottom
 }
 };
</script>

<style scoped>
 .A {
 width: 100%;
 height: 100%;
 background-color: blue;
 position: fixed;
 }

</style>

顶部标题和底部颜色都通过props传给子组件

top.vue

<template>
 <div class="header">
 <div class="left" @click="back">
 back
 </div>
 <div class="center">
 {{title}}
 </div>
 </div>
</template>

<script>
 export default {
 data() {
 return {};
 },
 props: ["title"],
 methods: {
 back() {
 this.$store.commit("setTransition", "turn-right");
 this.$router.back(-1);
 }
 }
 };
</script>

<style scoped>
 .header {
 position: fixed;
 width: 100%;
 height: 40px;
 line-height: 40px;
 background-color: rgb(100, 231, 60);
 }
 .clearfix {
 overflow: auto;
 }
 .left {
 position: fixed;
 left: 0;
 width: 60px;
 }
 .center {
 left: 50%;
 position: fixed;
 }
</style>

bottom.vue

<template>
 <div class="bottom" :style="'top:'+ num + 'px;background-color: '+ bg + ';'">
 bottom
 </div>
</template>

<script>
 export default {
 name: "bottom",
 data() {
 return {
 num:0,
 test:1,
 };
 },
 props: ["bg"],
 mounted() {
 let screenH = document.documentElement.clientHeight || window.innerHeight;
 window.console.log(screenH);
 this.num = screenH - 50 - 50;
 }
 }
</script>

<style scoped>
 .bottom {
 width: 100%;
 height: 50px;
 line-height: 50px;
 position: absolute;
 }
</style>

过程中遇到的问题

原本底部是使用fixed定位的,但fixed在transition的动画中会出现一些奇怪的抖动,原因不明,有大佬知道的话希望能留言告知下。

这里使用absolute替代了fixed,进页面时获取页面高度,然后计算出top值。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery中使用Ajax获取JSON格式数据示例代码
Nov 26 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
Sep 04 Javascript
酷! 不同风格页面布局幻灯片特效js实现
Feb 19 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
Aug 24 Javascript
AngularJS实现ajax请求的方法
Nov 22 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
Nov 24 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
Jun 12 jQuery
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
Oct 25 Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
vue-cli3中配置alias和打包加hash值操作
Sep 04 Javascript
微信小程序实现导航栏和内容上下联动功能代码
Jun 29 #Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 #Javascript
vue实现列表滚动的过渡动画
Jun 29 #Javascript
element跨分页操作选择详解
Jun 29 #Javascript
vue实现数字滚动效果
Jun 29 #Javascript
js实现从右往左匀速显示图片(无缝轮播)
Jun 29 #Javascript
Vue实现可移动水平时间轴
Jun 29 #Javascript
You might like
将OICQ数据转成MYSQL数据
2006/10/09 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
Discuz论坛密码与密保加密规则
2016/12/19 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
javascript实现简单搜索功能
2020/03/26 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
Python3常见函数range()用法详解
2019/12/30 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
python实现程序重启和系统重启方式
2020/04/16 Python
python中如何使用虚拟环境
2020/10/14 Python
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
校三好学生主要事迹
2014/01/11 职场文书
路政管理求职信
2014/06/18 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
党支部审查意见
2015/06/02 职场文书
航班延误投诉信
2015/07/02 职场文书
学校教师培训工作总结
2015/10/14 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server