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 相关文章推荐
javascript 二维数组的实现与应用
Mar 16 Javascript
在vs2010中调试javascript代码方法
Feb 11 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
Oct 23 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
Nov 14 Javascript
巧用replace将文字表情替换为图片
Apr 17 Javascript
JQuery 控制内容长度超出规定长度显示省略号
May 23 Javascript
node.js require() 源码解读
Dec 13 Javascript
jQuery动态加载css文件实现方法
Jun 15 Javascript
浅谈Vuex的状态管理(全家桶)
Nov 04 Javascript
动态内存分配导致影响Javascript性能的问题
Dec 18 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
Sep 06 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
微信小程序实现导航栏和内容上下联动功能代码
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
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
9个JavaScript评级/投票插件
2010/01/18 Javascript
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
JS简单实现数组去重的方法示例
2017/03/27 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
用vue写一个日历
2020/11/02 Javascript
速记Python布尔值
2017/11/09 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
Django如何将URL映射到视图
2019/07/29 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
餐饮营销方案
2014/02/23 职场文书
车贷收入证明范本
2014/09/14 职场文书
儿园租房协议书范本
2014/12/02 职场文书
优秀党员个人总结
2015/02/14 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis