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

一、前言                                                                                 

                       1、底部导航(两种做法)

                                        2、轮播图

                                        3、九宫格

 

二、主要内容                                                                           

1、底部导航

   方式一:借用mint-ui, 这里实现tab切换时高亮可以给每个tab双向绑定一个值

         (1)html结构代码如下

 <!--底部-->
    <mt-tabbar v-model="selected" fixed>
    <mt-tab-item id="home">
      <img slot="icon" src="./assets/index.png">
      首页
    </mt-tab-item>
    <mt-tab-item id="vip">
      <img slot="icon" src="./assets/vip.png">
      会员
    </mt-tab-item>
    <mt-tab-item id="shopcart">
      <img slot="icon" src="./assets/shopcart.png">
      购物车
    </mt-tab-item>
    <mt-tab-item id="search">
      <img slot="icon" src="./assets/search.png">
      查找
    </mt-tab-item>
  </mt-tabbar>

  (2)实现点击时切换,并且当前的背景为高亮

         mint-ui官方说了tabBar有value属性值,就是id值,

export default {
  name: 'App',
  data(){
    return {
      selected:''

    }
  },

 watch:{
  selected:function(newV,oldV){
    
    console.log(newV);
    console.log(oldV);
    console.log(this.selected);// 官方文档已经说明了,tabbar 有 value属性是 选中的项的id值,点击的时候会给selected进行赋值,也就将id值赋给selected,根据selected的值为点击的那个添加一个is-selected样式,你可以更改这个样式,或者绑定一个点击事件判断selected的值,添加样式,原理是一样的
    this.$router.push({name:this.selected});//这里进行路由跳转,跳到当前点击这里

  }
 }
}

 

 

  方式二:vue-router中给我们提供了linkactiveclass,用这种方式可以自定义导航

  (1)html结构代码

   <!--底部-->
    <div class="tabBar">
      <ul>
        <li v-for="(tab, index) in tabs">
          <router-link :to="tab.routerName">
            <img :src="tab.imgSrc">
            <p>{{tab.title}}</p>
          </router-link>
        </li>
      </ul>
      
    </div>

  (2)将tab用到的图片定义到下面的data中

 import index from './assets/index.png'
  import vip from './assets/vip.png'
  import shopcart from './assets/shopcart.png'
  import search from './assets/search.png'

  let tabs = [
    {id:1, title:"首页", imgSrc:index, routerName:{name:'home'}},
    {id:2, title:"会员", imgSrc:vip, routerName:{name:'vip'}},
    {id:3, title:"购物车", imgSrc:shopcart, routerName:{name:'cart'}},
    {id:4, title:"查找", imgSrc:search, routerName:{name:'search'}}


  ]
export default {
  name: 'App',
  data(){
    return {
     
      tabs

    }
  },

  (3)自己定义tab样式

.tabBar{
  width: 100%;
  height: 55px;
  background-color: #ccc;
  position: absolute;
  bottom: 0;
  left: 0;
  background-image: linear-gradient(180deg, #d9d9d9, #d9d9d9 50%, transparent 50%);
   background-size: 100% 1px;
  background-repeat: no-repeat;/*做一像素渐变线*/
  background-position: top left;
  background-color: #fafafa;
}

.tabBar ul{
  width: 100%;
  overflow: hidden;
}

.tabBar ul li{
  float: left;
  width: 25%;
  height: 55px;
  text-align: center;
}

.tabBar ul li a{
  display: inline-block;
  width: 100%;
  height: 100%;
 padding-top: 10px;

}
.tabBar ul li a.link-active{
  background-color: pink;
}
.tabBar ul li a img{
  width: 25px;
  height: 25px;
}
.tabBar ul li a p{
  font-size: 12px;
}
tabBar.css

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-16
  • 2022-01-14
  • 2022-12-23
  • 2021-12-17
  • 2021-04-02
  • 2021-08-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案