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开发的混合应用底部导航的显示与隐藏的更多相关文章

  1. 基于Html5 Plus + Vue + Mui 移动App 开发(二)

    基于Html5 Plus + Vue + Mui 移动App 开发(二) 界面效果: 本页面采用Html5 Plus + Vue + Mui 开发移动界面,本页面实现: 1.下拉刷新.上拉获取更多功能 ...

  2. 李洪强iOS开发之-实现点击单行View显示和隐藏Cell

    李洪强iOS开发之-实现点击单行View显示和隐藏Cell 实现的效果:  .... ....

  3. 基于Html5 Plus + Vue + Mui 移动App开发(三)-文件操作(读取、保存、更新数据)

      随着手机的发展,现在越来越多的人选择在手机上看书.无论是专业书籍.文学.英语还是网络小说,在手机上看新闻成了人们处理零碎时间的办法.在智能手机里安装一个资讯APP,可以随时.随地查看自己想看的资讯 ...

  4. vue学习(十二) 指令v-if v-show 控制页面标签的显示与隐藏

    //html <div id="app"> <input type="button" value="toggle" @cl ...

  5. 微信小程序开发笔记2,底部导航栏tablebar

    底部导航(要在app.js里面配置,也就是把导航的代码写到app.js) 官方文档说最少2个导航最多5个 , "tabBar": { "color": &quo ...

  6. vue实现动态显示与隐藏底部导航的方法分析

    本文实例讲述了vue实现动态显示与隐藏底部导航的方法.分享给大家供大家参考,具体如下: 在日常项目中,总有几个页面是要用到底部导航的,总有那么些个页面,是不需要底部导航的,这里列举一下页面底部导航的显 ...

  7. vue底部导航的精准显示

    让底部导航只显示在一级页面: 路由中的写法: import Vue from 'vue' import Router from 'vue-router' //import HelloWorld fro ...

  8. 浅谈App原生开发、混合开发及HTML5开发的优劣

    App混合开发(英文名:Hybrid App),是指在开发一款App产品的时候为了提高效率.节省成本即利用了原生的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用.目前App的开发 ...

  9. HBuilder mui 手机app开发 Android手机app开发 ios手机app开发

    经过一段时间的学习,做公司项目,对mui框架有了更加深入完整的了解,其实刚开始接触HBuilder中的mui框架只是简单的了解,并没有深入的研究,后来由于工作的需求,不得不深入研究,并运用的项目中去. ...

随机推荐

  1. 《剑指offer》字符串中的字符替换

    一.题目描述 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 二.输入描 ...

  2. Windows7 安装ubuntu双系统

    家里的老笔记本是MBR分区,不支持EFI , 一开始是用U盘安装的,还对着ubuntu官网的教程,下载了官方推荐的那个u盘引导工具,安装依然会报错, 网上查询也有很多种说法,也有说是bug的,无论如何 ...

  3. 以替换为主的疯狂填词、sub()介绍

    去年接到一个任务,一直给拖到了今天,再这么下去可不行,今天我就要让你们看看我的厉害 任务是这样的:创建一个程序,读入文本文件,并让用户在该文本出现ADJECTIVE .NOUN.ADVERB或VERB ...

  4. HDU 4941 Magical Forest (Hash)

    这个题比赛的时候是乱搞的,比赛结束之后学长说是映射+hash才恍然大悟.因此决定好好学一下hash. 题意: M*N的格子,里面有一些格子里面有一个值. 有三种操作: 1.交换两行的值. 2.交换两列 ...

  5. Unity 调用 Android Native 方法(一) 获得Android系统音量

    学习雷锋,好榜样,接下来的这一系类教程里,将通过unity来实现Android端的一些常用功能, 不需要在 Asset/Plugins/Android 目录下引用jar包或者aar包,这是重点. us ...

  6. 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees

    [题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...

  7. Liquibase被锁

    经常运行过程中出现 Liquibase - Waiting for changelog lock Waiting for changelog lock.... Running the migratio ...

  8. [React] Implement a Higher Order Component with Render Props

    When making a reusable component, you'll find that people often like to have the API they're most fa ...

  9. Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一. 什么是蓝牙(Bluetooth)? 1.1  BuleTooth是目前使用最广泛的无线通信协议 1.2  主要针对短距离设备通讯(10m) ...

  10. thinkphp5项目--企业单车网站(六)

    thinkphp5项目--企业单车网站(六) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Websitehttps:/ ...