vue+mui+html5+ plus开发的混合应用底部导航的显示与隐藏
1、 模板相关内容(template)
<template>
<div>
<transition :name="transitionName">
<router-view class="child-view"></router-view><--组件中内容-->
</transition>
<!--footer-->
<ul class="footer horizontal-list clear" v-if="footerShow"><--底部导航-->
<li><router-link :to="{name:'index'}"><img src="../assets/img/footer1.png" alt="" v-if="active!=1"><img src="../assets/img/footer1_active.png" alt="" v-else>首页</router-link></li>
<li><router-link :to="{name:'taotejia'}"><img class="img" src="../assets/img/footer2.png" alt="" v-if="active!=2"><img class="img" src="../assets/img/footer2_active.png" alt="" v-else>淘特价</router-link></li>
<li @click="goCollection()"><img class="img" src="../assets/img/footer3.png" alt="" v-if="active!=3"><img class="img" src="../assets/img/footer3_active.png" alt="" v-else>收藏夹</li>
<li><router-link :to="{name:'user'}"><img src="../assets/img/footer4.png" alt="" v-if="active!=4"><img src="../assets/img/footer4_active.png" alt="" v-else>我的</router-link></li>
</ul>
</div>
</template>
2 script中的数据与方法
<script>
export default {
data () {
return {
//相关数据
transitionName: 'slide-left',
footerShow:true,
active:1,
isLogin:''
}
},
//在路由更新之前判断下一个路由跳转来展示页面的显示与隐藏
beforeRouteUpdate (to, from, next) {
let isBack = this.$router.isBack;
if(to.path!='/'&&to.path!='/taotejia'&&to.path!='/cart'&&to.path!='/user'){
this.footerShow = false
this.resize(to.path)
}else{
this.footerShow = true
this.resize(to.path)
}
if(to.path == '/'){
this.active = 1;
}else if(to.path == '/taotejia'){
this.active = 2;
}else if(to.path == '/cart'){
this.active = 3;
}else if(to.path == '/user'){
this.active = 4;
}
if (isBack) {
this.transitionName = 'slide-right'
} else {
this.transitionName = 'slide-left'
}
this.$router.isBack = false
next(); },
//用过mounted的钩子函数来判断active
mounted(){
let route = this.$route.path;
if(route == '/'){
this.active = 1;
}else if(route == '/taotejia'){
this.active = 2;
}else if(route == '/cart'){
this.active = 3;
}else if(route == '/user'){
this.active = 4;
}
if(route!='/'&&route!='/taotejia'&&route!='/cart'&&route!='/user'){
this.footerShow = false
}else{
this.footerShow = true
}
this.resize( route)
},
methods:{
//当页面因为搜索框使页面窗口变小时动态的隐藏掉底部导航
resize(router){
let that=this;
let status=(router=='/'||router=='/taotejia'||router=='/cart'||router=='/user')
if(status){
that.footerShow=true;
window.addEventListener('resize',that.reverse,false)
}else{
that.footerShow=false;
window.removeEventListener('resize',that.reverse,false)
}
},
reverse(){
this.footerShow=!this.footerShow
},
goCollection(){
this.isLogin = localStorage.getItem('token')
if(this.isLogin){
this.$router.push({name:'cart'})
}else{
this.$router.push({path:'/login',query:{'backUrl':'/user'}})
}
}
} }
</script>
3、style的相关内容
<style >
.child-view {
position: absolute;
width:100%;
transition: all .4s cubic-bezier(.55,0,.1,1);
}
.slide-left-enter, .slide-right-leave-active {
opacity: 0;
-webkit-transform: translate(150px, 0);
transform: translate(150px, 0);
}
.slide-left-leave-active, .slide-right-enter {
opacity: 0;
-webkit-transform: translate(-150px, 0);
transform: translate(-150px, 0);
}
.header {
position:absolute;
height:44px;
background:#0058f1;
width:100%
}
</style>
vue+mui+html5+ plus开发的混合应用底部导航的显示与隐藏的更多相关文章
- 基于Html5 Plus + Vue + Mui 移动App 开发(二)
基于Html5 Plus + Vue + Mui 移动App 开发(二) 界面效果: 本页面采用Html5 Plus + Vue + Mui 开发移动界面,本页面实现: 1.下拉刷新.上拉获取更多功能 ...
- 李洪强iOS开发之-实现点击单行View显示和隐藏Cell
李洪强iOS开发之-实现点击单行View显示和隐藏Cell 实现的效果: .... ....
- 基于Html5 Plus + Vue + Mui 移动App开发(三)-文件操作(读取、保存、更新数据)
随着手机的发展,现在越来越多的人选择在手机上看书.无论是专业书籍.文学.英语还是网络小说,在手机上看新闻成了人们处理零碎时间的办法.在智能手机里安装一个资讯APP,可以随时.随地查看自己想看的资讯 ...
- vue学习(十二) 指令v-if v-show 控制页面标签的显示与隐藏
//html <div id="app"> <input type="button" value="toggle" @cl ...
- 微信小程序开发笔记2,底部导航栏tablebar
底部导航(要在app.js里面配置,也就是把导航的代码写到app.js) 官方文档说最少2个导航最多5个 , "tabBar": { "color": &quo ...
- vue实现动态显示与隐藏底部导航的方法分析
本文实例讲述了vue实现动态显示与隐藏底部导航的方法.分享给大家供大家参考,具体如下: 在日常项目中,总有几个页面是要用到底部导航的,总有那么些个页面,是不需要底部导航的,这里列举一下页面底部导航的显 ...
- vue底部导航的精准显示
让底部导航只显示在一级页面: 路由中的写法: import Vue from 'vue' import Router from 'vue-router' //import HelloWorld fro ...
- 浅谈App原生开发、混合开发及HTML5开发的优劣
App混合开发(英文名:Hybrid App),是指在开发一款App产品的时候为了提高效率.节省成本即利用了原生的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用.目前App的开发 ...
- HBuilder mui 手机app开发 Android手机app开发 ios手机app开发
经过一段时间的学习,做公司项目,对mui框架有了更加深入完整的了解,其实刚开始接触HBuilder中的mui框架只是简单的了解,并没有深入的研究,后来由于工作的需求,不得不深入研究,并运用的项目中去. ...
随机推荐
- javascript实现多线程 Concurrent.Thread.js
在这次我的项目中,因为前端要检测硬件加载并识别,再向后台请求发送数据,然后再返回的相应的配置文件!在这过程,要好时好几秒钟,严重影响体验效果,所以在网上靠看的方案,运用多线程去处理,这效果明显改善! ...
- Linux 文件系统权限
文件权限管理 文件系统上的权限是指文件和目录的权限,权限主要针对三类对象(访问者)定义 owner group other 属主 属组 其它 每个文件对每类访问者都定义了三种 ...
- 紫书 例题 10-13 UVa 830(递推)
首先我们按照这三个U的位置来分类,当前三个U在i,i+1, i+2. 那么先看三个U前面,前面不能有三个U,因为我们不能重复计算 那么就是所有的组合减去有U的情况 为了叙述方便,我们设答案为f(n), ...
- Spring Cloud分布式Session共享实践
通常情况下,Tomcat.Jetty等Servlet容器,会默认将Session保存在内存中.如果是单个服务器实例的应用,将Session保存在服务器内存中是一个非常好的方案.但是这种方案有一个缺点, ...
- commons-fileupload 多文件上传
第三方的文件上传工具类,例如这个东东:http://www.oschina.net/p/commons-fileupload,解析的方法无非就是这样: 1:在 controller 中先 HttpSe ...
- 4.graph.h
#pragma once #include <stdio.h> #include <graphics.h> #include <mmsystem.h> #pragm ...
- 参加2012 Openstack亚太技术大会
参加2012 OpenStack亚太技术大会 OpenStack是一个由Rackspace发起.全球开发者共同参与的开源项目,旨在打造易于部署.功能丰富且易于扩展的云计算平台.OpenStack企图成 ...
- LDAP实现企业异构平台的统一认证
LDAP实现企业异构平台的统一认证 技术是为应用服务的,没有应用,技术就无用武之地.同样光配置完LDAP服务器没有任何意义,只有把所有需要认证的环节,只有纳入LDAP系统中,才能使它发挥应有 ...
- Linux下Rootkit的另类检测
Linux下Rootkit的另类检测 当黑客获取管理员权限时,首先是抹掉入侵系统的相关记录,并且隐藏自己的行踪,要实现这一目的最常用的方法就是使用Rootkits,简单的说,Rootkits是一种经 ...
- css3 实现加载滚动条效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...