Vue自定义web网页顶部导航栏
说明:此组件是为论坛类项目定制的一个实用的顶部导航栏,当然也可以用于其他的Web项目,只需要稍作修改便可以达到想要的效果。其中导航栏包含了搜索栏,用户头像,以及基本的导航标题。导航栏标题的选中是通过 vue-router(路由)实现。*:文末附下载连接*
导航栏效果
文章图片
详细步骤
第一步:安装 vue-router
npm i vue-router@3
第二步:在 main.js 中引入和使用 VueRouter
import VueRouter from 'vue-router';
Vue.use(VueRouter)
第三步: 创建一个组件BBSHeader
文章图片
>Aubuary
文章图片
>
export default {
name: "BBSHeader"
}
scoped>
.header{
display: flex;
align-items: center;
justify-content: space-between;
height: 50px;
background-color:#292c2f;
color: #ffffff;
/*吸顶效果*/
/* position: sticky;
position: -webkit-sticky;
!*兼容 -webkit 内核的浏览器*!
top: 0px;
!*必须设一个值,否则不生效*!*/}
.box{
display: flex;
align-items: center;
}
h1{
display: flex;
align-items: center;
font: normal 28px Cookie, Arial, Helvetica, sans-serif;
padding: 0px 20px;
}
img{
width: 40px;
height: 40px;
}nav {
display: flex;
align-items: center;
margin: 0px 40px;
font:16px Arial, Helvetica, sans-serif;
}
nav a{
padding: 0 15px;
width: 32px;
text-decoration:none;
color: #ffffff;
font-size: 16px;
font-weight: normal;
opacity: 0.9;
}nav a:hover {
opacity: 1;
}.active {
color: #608bd2;
pointer-events: none;
opacity: 1;
}/*搜索框*/.text{
height: 22px;
font-size: 14px;
border: 1px solid #ccc;
padding: 3px 16px;
border-bottom-left-radius: 20px;
border-top-left-radius: 20px;
}
.text:focus{
outline: none;
border-color: rgba(82, 168, 236, 0.8);
box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
}
.button{
width: 60px;
height: 30px;
font-size: 14px;
margin-right: 35px;
border: 1px solid #608bd2;
background-color: #608bd2;
border-top-right-radius: 20px;
border-bottom-right-radius: 20px;
}.contents{
display: flex;
justify-content: center;
}
.content{
display: flex;
width: 1400px;
height: 1400px;
/*background-color: #f0f2f3;
*/
}
【vue|Vue自定义网页顶部导航栏】第四步:创建一个路由器其中index.js中的内容如下
新建如下文件夹和文件
|–pages
? |–BBSAsk.vue
? |–BBSCommunity.vue
? |–BBSHome.vue
|–router
? |–index.js
import VueRouter from 'vue-router';
import BBSHome from "@/pages/BBSHome";
import BBSAsk from "@/pages/BBSAsk";
import BBSCommunity from "@/pages/BBSCommunity";
//创建一个路由器
const router = new VueRouter({
mode: 'history',
routes:[
{
name: 'home',
path:'/home',
component:BBSHome,
},
{
name: 'ask',
path: '/ask',
component: BBSAsk,
},
{
name:'community',
path: '/community',
component:BBSCommunity,
}
]
})
export default router
第五步:在 main.js 中引入创建好的 router
import router from "@/router";
//在 new Vue对象的时候声明 router
new Vue({
el:'#app',
render: h => h(App),
router,
})
第六步:在 APP.vue 中使用 BBSHeader 组件就可
>
import BBSHeader from "@/components/BBSHeader";
export default {
name: 'App',
components: {BBSHeader},
}
备注:网页字体可以在 index.html 中做如下引入
下载地址 京茶吉鹿
?提取码?: 63zu
推荐阅读
- 向前端进军|【JavaScript-循环-js循环你学懂了吗】
- JavaScript|【JavaScript 进阶教程】对象新增方法 defineProperty 与 keys 的说明与使用
- javascript|Antv | 蚂蚁数据可视化API应用
- vue.js|Vue的生命周期详解
- vue.js|vue3.0项目使用vue-cli搭建
- uni-app|uni-app中使用自定义组件全局化.....
- javascript|高效的MobX 状态管理
- 掘光者网课题库系统|大学网课搜题查题公众号 内有接口
- react|react实战