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打印网页部分内容的脚本
Nov 17 Javascript
javascript forEach通用循环遍历方法
Oct 11 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
Mar 04 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 Javascript
js 实现省市区三级联动菜单效果
Feb 20 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
May 25 Javascript
React Native 使用Fetch发送网络请求的示例代码
Dec 02 Javascript
Vue一次性简洁明了引入所有公共组件的方法
Nov 28 Javascript
玩转Koa之核心原理分析
Dec 29 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
Sep 21 jQuery
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
Jul 27 Javascript
vue制作toast组件npm包示例代码
Oct 29 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
常用的php对象类型判断
2008/08/27 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
ptyhon实现sitemap生成示例
2014/03/30 Python
Python文件读取的3种方法及路径转义
2015/06/21 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
总经理司机职责
2014/02/02 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
党员公开承诺书2015
2015/01/21 职场文书
农村婚庆主持词
2015/06/29 职场文书
婚宴主持词
2015/06/30 职场文书
httpclient调用远程接口的方法
2022/08/14 Java/Android