zoukankan      html  css  js  c++  java
  • vue 实现底部导航栏

    解决办法:

    1.新建四个或者多个页面(Index.vue,Classify.vue,ShoppCart.vue,My.vue)

    2.新建tabbar.vue页面

    <template>
        <div id="tab-bar">
            <slot></slot>
        </div>
    </template>
    
    <script>
        export default {
            name: 'TabBar'
        }
    </script>
    
    <style scoped>
        #tab-bar {
            display: flex;
            position: fixed;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: #f6f6f6;
            box-shadow: 0 -1px 1px rgba(100, 100, 100, .1);
        }
    </style>

    此处为知识链接:

    <slot></slot>名叫插槽,在这边主要起到的是占位的作用

    3.新建tabbaritem.vue页面

    <template>
        <div class="tab-bar-item" @click="itemClick()">
            <div v-if="!isActive">
                <slot name="item-icon"></slot>
            </div>
            <div v-else>
                <slot name="item-icon-active"></slot>
            </div>
            <div :style="activeStyle">
                <slot name="item-text"></slot>
            </div>
        </div>
    </template>
    
    <script>
        export default {
            name: 'TabBarItem',
            props: {
                path: String,
                activeColor: {
                    type: String,
                    default: '#1296db'
                }
            },
            computed: {
                isActive() {
                    return this.$route.path.indexOf(this.path) !== -1
                },
                activeStyle() {
                    return this.isActive ? {color: this.activeColor} : {}
                }
            },
            methods: {
                itemClick() {
                    this.$router.replace(this.path).catch(() => {})
                }
            }
        }
    </script>
    
    <style>
        .tab-bar-item {
            flex: 1;
            text-align: center;
            height: 49px;
            font-size: 14px;
        }
    
        .tab-bar-item img {
            display: inline-block;
             24px;
            height: 24px;
            margin-top: 3px;
            vertical-align: middle;
        }
    </style>

    4.在App.vue 中实现文件的引用

    <template>
      <div id="app">
          <router-view></router-view>
          <tab-bar>
              <tab-bar-item path="/home">
                  <img slot="item-icon" src="./assets/img/tabbar/icon_home.png" alt="首页">
                  <img slot="item-icon-active" src="./assets/img/tabbar/icon_home_active.png" alt="首页">
                  <div slot="item-text">首页</div>
              </tab-bar-item>
              <tab-bar-item path="/classify">
                  <img slot="item-icon" src="./assets/img/tabbar/icon_classify.png" alt="分类">
                  <img slot="item-icon-active" src="./assets/img/tabbar/icon_classify_active.png" alt="分类">
                  <div slot="item-text">分类</div>
              </tab-bar-item>
              <tab-bar-item path="/shopcart">
                  <img slot="item-icon" src="./assets/img/tabbar/icon_shopcart.png" alt="购物车">
                  <img slot="item-icon-active" src="./assets/img/tabbar/icon_shopcart_active.png" alt="购物车">
                  <div slot="item-text">购物车</div>
              </tab-bar-item>
              <tab-bar-item path="/my">
                  <img slot="item-icon" src="./assets/img/tabbar/icon_my.png" alt="我的">
                  <img slot="item-icon-active" src="./assets/img/tabbar/icon_my_active.png" alt="我的">
                  <div slot="item-text">我的</div>
              </tab-bar-item>
          </tab-bar>
      </div>
    </template>
    
    <script>
        import TabBar from './components/tabbar/TabBar.vue'
        import TabBarItem from './components/tabbar/TabBarItem.vue'
    
    export default {
      name: 'App',
      components: {
        TabBar,
        TabBarItem
      }
    }
    </script>
    
    <style></style>

    原文链接:Vue实现底部导航

  • 相关阅读:
    jQuerychicun
    css3动画
    app开发,H5+CSS3页面布局小tips
    函数基础
    函数
    冒泡排序
    关于Vue+iview的前端简单的导入数据(excel)
    关于Vue+iview的简单下拉框滚动加载
    ES6中set的用法回顾
    百度地图api设置点的自定义图标不显示
  • 原文地址:https://www.cnblogs.com/dagongren/p/14131856.html
Copyright © 2011-2022 走看看