Vue(小案例)底部tab栏和顶部title栏的实现

---恢复内容开始---

一、前言

1、底部tab栏实现

2、顶部title栏实现

二、主要内容

  1、底部tab栏实现(将底部导航提取到公共的组件中)

具体效果:当点击切换不同的tab的时候,对应的显示高亮,并且切换到对应的页面中

  (1)html/css代码

<template>
    <div>
        <footer class="footer_guide border-1px">
            <a href="#" class="guide_item" @click=‘goTo("/")‘  :class="{‘on‘:‘/‘==this.$route.path}">
                <span>
                    <i class="iconfont icon-U"></i>
                </span>
                <span>外卖</span>
            </a>

            <a href="#" class="guide_item" @click=‘goTo("/Search")‘ :class="{‘on‘:‘/Search‘==this.$route.path}">
                <span>
                    <i class="iconfont icon-sousuo"></i>
                </span>
                <span>搜索</span>
            </a>

            <a href="#" class="guide_item" @click=‘goTo("/Order")‘ :class="{‘on‘:‘/Order‘==this.$route.path}" >
                <span>
                    <i class="iconfont icon-icon"></i>
                </span>
                <span>订单</span>
            </a>

            <a href="#" class="guide_item" @click=‘goTo("/Profile")‘ :class="{‘on‘:‘/Profile‘==this.$route.path}" >
                <span>
                    <i class="iconfont icon-geren"></i>
                </span>
                <span>我的</span>
            </a>

        </footer>
    </div>
</template>
<script type="text/javascript">

    export default{
        data(){
            return{

            }
        },

        methods:{
            goTo(path){

                this.$router.replace(path)
            }
        }

    }
</script>
<style lang="stylus" rel="stylesheet/stylus">
    @import "../../common/stylus/mixins.styl"

    .footer_guide
      top-border-1px(#e4e4e4)
      position fixed;
      z-index 100
      left 0
      right 0
      bottom 0
      background-color #fff
      width 100%
      height 50px
      display flex

    .guide_item
          display flex
          flex 1
          text-align center
          flex-direction column
          align-items center
          margin 5px
          color #999
     &.on
          color #02a774
     span
              font-size 12px
              margin-top 2px
              margin-bottom 2px
     .iconfont
               font-size 22px

</style>

footerGuide.vue

   (2)给每个Tab切换标签注册一个点击事件,每次点击的时候,将当前对应页面的路由传过去,并且比较当且的路由,是否和tab上的路由一致,如果一致的时候就进行路由跳转, 并且判断当前的路由是否等于每个标签中对应的路由,如果对应就设置为高亮

2、顶部title栏实现(用到slot插槽)

  (1)在很多app软件中,顶部的结构很相似(可以分为左,右,中)三个部分,

  (2)也将顶部导航提取到公共导航部分

<template>
    <!--头部-->
        <header class="header">
            <slot name="left"></slot>

            <span class="header_title">
                <span class="header_title_text ellipsis">{{title}}</span>
            </span>

            <slot name="right"></slot>
        </header>

</template>
<script type="text/javascript">
    export default{
        props:{
            title: String
        }
    }
</script>
<style lang="stylus" rel="stylesheet/stylus">
          .header
              background-color #02a774
              position fixed
              z-index 100
              top 0
              left 0
              width 100%
              height 45px
              .header_search
                position absolute
                left 15px
                top 30%
                width 10%
                height 50%
                .icon-sousuo
                  font-size 25px
                  color #fff
              .header_login
                font-size 14px
                color #fff
                position absolute
                right 15px
                top 50%
                transform transformY(-50%)
                .header_login_text
                 color #fff
              .header_title
                position absolute
                top 50%
                left 50%
                transform translateX(-50%)
                width 50%
                color #fff
                text-align center
              .header_title_text
                font-size 20px
                color #fff
                display block
</style>

HeaderTop.vue

  (3)由于每个导航的title不一样,可以从父组件传给子组件

  父组件中:

第一步:先挂载

  第二步:使用

  子组件中:

三、总结

---恢复内容结束---

原文地址:https://www.cnblogs.com/xxm980617/p/10792657.html

时间: 2024-08-01 21:03:28

Vue(小案例)底部tab栏和顶部title栏的实现的相关文章

android实现底部导航栏和顶部导航栏(相当于网页上的一级菜单和二级菜单)

直接采用图片进行导航,实现activity跳转,虽然功能实现了,但是界面实在太丑,所以采用顶部导航栏和底部导航栏进行控制,在这个学习的过程中,发现了很多好的资料,不仅对控件进行了详细的讲解和演示,而且还附带源码以供下载.再次记录,供大家参考学习: 1.http://www.linuxidc.com/Linux/2012-07/66327.htm 2.http://blog.csdn.net/yalinfendou/article/details/44727299 3.http://blog.cs

VUE小案例--跑马灯效果

自学Vue课程中学到的一个小案例,跑马灯效果 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="

vue小案例--简易评论区

一.小案例(评论区) 1.流程 (1)分析静态页面.(vue项目创建参考https://www.cnblogs.com/l-y-h/p/11241503.html)(2)拆分静态页面,变成一个个组件.(3)对组件编码,生成动态页面. 2.静态页面 参考来源:https://www.bilibili.com/video/av49099807/?p=22&t=1223 [举例:] <!DOCTYPE html> <html> <head> <meta char

微信小程序--仿京东UI样式顶部导航栏

我们先来看看京东的效果 分析 上端导航栏可以放置多个分类,可滑动 点击导航栏最右端按钮可以查看所有分类,同时背景模糊 内容部分右拉跳转到另外的分类 点击分类时导航栏的滑动部分自动滑动到合适的位置 我的实现 代码展示: js /** * categoryView.js - 分类页面 */ var fakeData = require('../../common/fakeData.js') Page( { data: { categories: ['全部'], currentTab: 0, scro

Vue(小案例_vue+axios仿手机app)_购物车

一.前言 1.购物车 二.主要内容 1.效果演示如下,当我们选择商品数量改变的时候,也要让购物车里面的数据改变 2.具体实现 (1)小球从上面跳到下面的效果 (2)当点击上面的“加入购物车按钮”让小球显示出来(这里需要用到vue中的动画过渡) 结构如下(这是在加入购物车这个页面) //小球 <transition name='ball' @after-enter='afterEnter'> <div class="ball" v-if="isExist&qu

vue小案例(跑马灯)

html模块!! <div id="app"> <h4> {{msg}} </h4> //开始跑马状态 <input type="button" value="飘" @click='lang'> //停止 <input type="button" value="定住" @click='stop'> </div>  script模块 va

Vue小案例 之 商品管理------创建页面与部分数据

logo的路径: 页面的初始布局: 初始的HTML: <div id="container"> <!--logo title--> <div class="header"> <img :src="imgUrl+imgName" class="logo" height="200px" width="150px" style="paddin

js-滚动到指定位置导航栏固定顶部

最近整理一下之前做的一个项目,把滚动条动态固定顶部的代码整理出来和大家分享,上代码 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>js滚动到指定位置导航栏固定顶部</title> 6 <style type="text/css"> 7 body{height: 2500px; margin:

js滚动到指定位置导航栏固定顶部

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js滚动到指定位置导航栏固定顶部</title> <style type="text/css"> body{height: 2500px; margin: 0; padding: 0;} .banner{height: 250px; width: 100%; bac