最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

vuerouter仿天猫底部导航栏实例分享

来源:动视网 责编:小采 时间:2020-11-27 20:06:56
文档

vuerouter仿天猫底部导航栏实例分享

vuerouter仿天猫底部导航栏实例分享:本文主要介绍了vue router仿天猫底部导航栏功能,需要的朋友可以参考下,希望能帮助到大家。首先把天猫的导航贴出来,里面包括精选、品牌、会员、购物车、我五个导航及对应的图标。分析:1、图标的获取进入阿里巴巴矢量图标库,网址 http://www.icon
推荐度:
导读vuerouter仿天猫底部导航栏实例分享:本文主要介绍了vue router仿天猫底部导航栏功能,需要的朋友可以参考下,希望能帮助到大家。首先把天猫的导航贴出来,里面包括精选、品牌、会员、购物车、我五个导航及对应的图标。分析:1、图标的获取进入阿里巴巴矢量图标库,网址 http://www.icon
 本文主要介绍了vue router仿天猫底部导航栏功能,需要的朋友可以参考下,希望能帮助到大家。

首先把天猫的导航贴出来,里面包括精选、品牌、会员、购物车、我五个导航及对应的图标。

分析:

1、图标的获取

进入阿里巴巴矢量图标库,网址 http://www.iconfont.cn。

点击官方图标库,选择天猫图标库,选中放入购物车。


点击添加至项目,点击创建新项目按钮,创建tianmao项目,点击确定。


此时会有查看在线链接和下载至本地两种方式,我选择第一种,因为后期如果要添加小图标的话,只需要重新生成在线链接,然后更新link即可



复制链接到index.html的link标签内,具体为

<link rel="stylesheet" href="http://at.alicdn.com/t/font_443540_nvmeyfe7k3rcc8fr.css" rel="external nofollow" >

引入图标,使用<i class="icon iconfont icon-wo"></i>区别在第三个class来引入对应图标

此时所需图标处理完毕

2、创建精选、品牌、会员、购物车、我及路由导航组件Home.vue、Brand.vue、Member.vue、Cart.vue、Me.vue、Tabs.vue

使用的样式时less,如果在.vue文件中写样式,style必须写成<style lang="less" type="text/less"></style>,否则会报错

Tabs.vue

<template> 
 <p class="tabs"> 
 <!--命名路由--> 
 <ul> 
 <!--this inspection reports XML/HTML tags with missing mandatory attrbutes ,you can specify attrbute name that should not be reported--> 
 <!--home被点击后,一直处于激活状态,因此需要使用精确匹配模式,在router-link中添加exact属性--> 
 <router-link :to="{name:'Home'}" tag="li" exact> 
 <p> 
 <i class="icon iconfont icon-31shouye"></i> 
 </p> 
 <p>精选</p> 
 </router-link> 
 <router-link :to="{name:'Brand'}" tag="li"> 
 <p> 
 <i class="icon iconfont icon-zhubaoshipin"></i> 
 </p> 
 <p>品牌</p> 
 </router-link> 
 <router-link :to="{name:'Member'}" tag="li"> 
 <p> 
 <i class="icon iconfont icon-huiyuanqia"></i> 
 </p> 
 <p>会员</p> 
 </router-link> 
 <router-link :to="{name:'Cart'}" tag="li"> 
 <p> 
 <i class="icon iconfont icon-gouwucheman"></i> 
 </p> 
 <p>购物车</p> 
 </router-link> 
 <router-link :to="{name:'Me',params:{user:'xu'}}" tag="li"> 
 <p> 
 <i class="icon iconfont icon-wo"></i> 
 </p> 
 <p>我</p> 
 </router-link> 
 </ul> 
 </p> 
</template> 
<script type="text/ecmascript-6"> 
 export default {} 
</script> 
<style lang="less" type="text/less"> 
 .tabs { 
 position: fixed; 
 bottom: 0; 
 left: 0; 
 background-color: #fff; 
 box-shadow: 0 2px 4px #000; 
 width: 100%; 
 & > ul, & > ul > li { 
 margin: 0; 
 padding: 0; 
 } 
 ul { 
 display: table; 
 width: 100%; 
 & > li { 
 text-align: center; 
 font-size: 16px; 
 display: table-cell; 
 padding: 8px 12px; 
 cursor: pointer; 
 &.router-link-active{ 
 color: #D0021B; 
 } 
 & > p { 
 font-size: 14px; 
 & > i { 
 font-size: 30px; 
 } 
 } 
 } 
 } 
 } 
</style>

我使用的是命名路由,这样我们就可以当路由组件变化时,直接修改router/index.js文件即可。

3、创建路由

router/index.js

import Vue from 'vue' 
import Router from 'vue-router' 
import Home from '@/Home' 
import Brand from '@/Brand' 
import Member from '@/Member' 
import Cart from '@/Cart' 
import Me from '@/Me' 
Vue.use(Router) 
export default new Router({ 
 //mode: 'history', 
 //base: __dirname, 
 //linkActiveClass: 'active', // 更改激活状态的Class值 
 routes: [ 
 { 
 path: '/', 
 name: 'Home', 
 component: Home 
 }, 
 { 
 path: '/brand', 
 name: 'Brand', 
 component: Brand 
 }, 
 { 
 path: '/member', 
 name: 'Member', 
 component: Member 
 }, 
 { 
 path: '/cart', 
 name: 'Cart', 
 component: Cart 
 }, 
 { 
 path: '/me', 
 name: 'Me', 
 component: Me 
 } 
 ] 
})

4、App.vue引入组件Tabs.vue,并添加<router-view>渲染路径匹配到的视图组件

<template> 
 <p id="app"> 
 <Tabs></Tabs> 
 <p class="content"> 
 <router-view></router-view> 
 </p> 
 </p> 
</template> 
<script> 
 import Tabs from "./Tabs.vue" 
 export default { 
 name: 'app', 
 data(){ 
 return {} 
 }, 
 components: {Tabs} 
 } 
</script> 
<style> 
 *{ 
 padding:0; 
 margin:0; 
 } 
 #app { 
 font-family: 'Avenir', Helvetica, Arial, sans-serif; 
 -webkit-font-smoothing: antialiased; 
 -moz-osx-font-smoothing: grayscale; 
 } 
</style>

5、导航状态样式

<router-link>对应的路由匹配成功后,就会自动设置class属性值为router-link-exact-active router-link-active

router-link-exact-active:配置当链接被精确匹配的时候应该激活的CSS类名。

router-link-active:设置链接激活时使用的 CSS 类名。

如果要修改CSS样式命名,可通过<router-link>属性exact-active-class和active-class分别设置,也可通过路由构造函数选项linkExactActiveClass和linkActiveClass来设置


点击品牌时展示如下:Home的Tab仍然设置了routet-link-activeCSS类名,如果设置routet-link-active样式颜色为红色,精选就会一直保持红色

此时需要使用”精确匹配模式“,<router-link :to="{name:'Home'}" tag="li" exact> 则使用exact,此时的Home的Tab就不会被设置routet-link-activeCSS类名了

访问 http://localhost:8080/#/brand 就不会匹配到http://localhost:8080/#/


相关推荐;

jQuery实现的粘性滚动导航栏效果

jQuery实现导航栏头部菜单项点击后变换颜色的方法实例详解

JavaScript实现个性导航栏特效

文档

vuerouter仿天猫底部导航栏实例分享

vuerouter仿天猫底部导航栏实例分享:本文主要介绍了vue router仿天猫底部导航栏功能,需要的朋友可以参考下,希望能帮助到大家。首先把天猫的导航贴出来,里面包括精选、品牌、会员、购物车、我五个导航及对应的图标。分析:1、图标的获取进入阿里巴巴矢量图标库,网址 http://www.icon
推荐度:
标签: 分享 VUE vuerouter
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top