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框架只是简单的了解,并没有深入的研究,后来由于工作的需求,不得不深入研究,并运用的项目中去. ...
随机推荐
- ASP.NET 部分视图
ASP.NET MVC 里的部分视图,相当于 Web Form 里的 User Control.我们的页面往往会有许多重用的地方,可以进行封装重用. 使用部分视图有以下优点: 1. 可以简写代码. ...
- Future模式 总结
future模式解决异步代码的组织(混入)问题: 类似的解决方案: 1.网络响应的block: 2.SDImageview的自组织.代理模式: 3.顶层响应机制的协议机制:
- .net Web获取域用户账号
HttpContext.Current.Request.LogonUserIdentity.Name //可以获取出域账号 HttpContext.Current.Request.LogonUserI ...
- 关于 nginx 的配置的 location
精准匹配和普通匹配: server{ location =/index.htm{ ////精准匹 ...
- 洛谷1073 NOIP2009 最优贸易
题目大意 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双 ...
- Winscp远程连接Linux主机,上传和下载文件
1.安装Winscp.这里不再赘述,网上搜索下载安装就可以 2.点击桌面Winscp快捷键,打开Winscp 3.在打开的页面上填写远程主机的IP,用户名和密码,点击保存,会在页面的左边出现一个站点, ...
- Hdu 4930 斗地主
模拟题,只是想纪念下,WA到死了…… 看到好多代码都好长,其实想说不用这么暴力. #include <iostream> #include <cstdio> #include ...
- 七 HBase表结构设计
表结构设计之 高表 与 宽表 选择 HBase 中的表可以设计为高表(tall-narrow table) 和 宽表(flat-wide table). 高表 : ...
- HDU 5373(2015多校7)-The shortest problem(模拟%11)
题目地址:pid=5373">HDU 5373 题意:给你一个数n和操作次数t,每次操作将n的各位数之和求出来放在n的末尾形成新的n,问t次操作后得到的n能否够被11整除. 思路:就是 ...
- [Python] Use a Python Generator to Crawl the Star Wars API
In this lesson, you will be introduced to Python generators. You will see how a generator can replac ...