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 的 trim 函数的代码
Aug 13 Javascript
一段利用WSH获取登录时间的jscript代码
May 11 Javascript
javascript new一个对象的实质
Jan 07 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
Sep 13 Javascript
JS的replace方法详细介绍
Nov 09 Javascript
js onkeypress与onkeydown 事件区别详细说明
Dec 13 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
Apr 03 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
Aug 01 Javascript
微信小程序 九宫格实例代码
Jan 21 Javascript
JavaScript反射与依赖注入实例详解
May 29 Javascript
Vue组件通信的几种实现方法
Apr 25 Javascript
jQuery实现简单弹幕效果
Nov 28 jQuery
微信小程序实现导航栏和内容上下联动功能代码
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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
php 远程图片保存到本地的函数类
2008/12/08 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
jquery插件之easing 动态菜单
2010/08/21 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
JavaScript函数详解
2014/11/17 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
Node.js事件驱动
2015/06/18 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
JS作用域深度解析
2016/12/29 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
Django 路由控制的实现代码
2018/11/08 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
自我鉴定怎么写
2014/01/12 职场文书
个性发展自我评价
2014/02/11 职场文书
食品采购员岗位职责
2014/04/14 职场文书
大班幼儿评语大全
2014/04/30 职场文书
毕业生求职信
2014/06/10 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
初中化学教学反思
2016/02/22 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技