vue实用组件——页面公共头部
可伸缩自适应的页面头部,屏幕适应范围更广泛
效果如下:


代码如下:
<template>
<div class="site-header">
<div class="logo"><img src="@/assets/icons/logo.png" alt=""></div>
<nav class="title">
<!--汉堡按钮图标-->
<em class="iconfont icon-justify" @click.stop="toggle('title')"></em>
<ul ref="title">
<li class="active">
<a href="#">{{ 首页}}</a>
</li>
<li>
<a href="#">{{ 交易中心}}</a>
</li>
<li>
<a href="#">{{ 用户中心}}</a>
</li>
<li>
<a href="#">{{ 新闻 }}</a>
</li>
<li>
<a href="#">{{ 关于我们 }}</a>
</li>
</ul>
</nav>
<div class="aboutlogin">
<!--用户头像图标-->
<em class="iconfont icon-user" @click.stop="toggle('aboutlogin')"></em>
<ul ref="aboutlogin">
<li class="active">
<a href="#">{{ 登录 }}</a>
</li>
<li>
<a href="#">{{ 注册}}</a>
</li>
<li v-if="false"><a href="javascript:;">{{ 欢迎 }}</a> <span>{{ 555 }}</span></li>
<li v-if="false">
<a href="javascript:;">{{退出}}</a>
</li>
</ul>
</div>
</div>
</template> <script>
export default {
computed: {
clickRootNum () {
return this.$store.state.system.clickRootNum
}
},
methods: {
toggle (ref) {
if (ref === 'title') {
this.$refs.aboutlogin.classList.remove('d-show')
} else {
this.$refs.title.classList.remove('d-show')
}
const ele = this.$refs[ref]
const classname = ele.className
if (classname.indexOf('d-show') > -1) {
ele.classList.remove('d-show')
} else {
ele.classList.add('d-show')
}
}
},
watch: {
'clickRootNum' () { // 点击页面任意位置关闭下拉列表,需要vuex的状态来配合
this.$refs.title.classList.remove('d-show')
this.$refs.aboutlogin.classList.remove('d-show')
}
}
}
</script> <style scoped lang="scss">
/*定义的一些主题颜色*/
@import "../../assets/css/variate"; .d-show {display: block!important;}
@media screen and (min-width: 781px) {
.site-header{
height: 72px;
display: flex;
flex-direction: row;
justify-content: space-between;
border-bottom: 1px solid $themecolor;
background-color: #fff;
align-items: center;
.logo{
margin-left: 10px;
height: 52px;
}
.aboutlogin{
width: 250px;
height: 100%;
margin-right: 10px;
.icon-user {
display: none;
}
ul {
display: flex!important;
flex-direction: row;
justify-content: space-around;
li{
display: inline-block;
line-height: 72px;
font-size: 14px;
cursor: pointer;
color: #7a7a7a;
&:hover>a {
color: $themecolor;
}
a {
color: #7a7a7a;
display: inline-block;
&:active{
transform: translateY(1px);
}
}
&.active a{
color: $themehover;
font-weight: bold;
}
}
}
}
.title {
width: 600px;
margin: 0 20px;
.icon-justify {
display: none;
}
ul {
display: flex!important;
flex-direction: row;
justify-content: space-between;
li {
display: inline-block;
line-height: 72px;
&:hover a{
background-color: $themecolor;
padding: 2px 5px;
color: #fff;
}
a{
color: $themecolor;
font-size: 18px;
padding: 2px 5px;
&:active {
background-color: $themehover;
}
}
&.active a{
background-color: $themecolor;
color: #fff;
}
}
}
}
}
}
@media screen and (max-width: 780px) {
.site-header{
height: 72px;
border-bottom: 1px solid $themecolor;
background-color: #fff;
position: relative;
.logo{
position: absolute;
top: 0;
bottom: 0;
margin: auto 0;
right: 10px;
height: 52px;
}
.aboutlogin{
width: 60px;
height: 100%;
margin-right: 10px;
position: absolute;
left: 60px;
.icon-user {
font-size: 32px;
color: #999;
line-height: 72px;
display: inline-block;
cursor: pointer;
}
ul {
display: none;
background-color: #fff;
position: absolute;
left: -10px;
top: 71px;
width: 90px;
li{
line-height: 36px;
font-size: 14px;
cursor: pointer;
padding-left: 10px;
color: #7a7a7a;
&:hover>a {
color: $themecolor;
}
a {
color: #7a7a7a;
display: inline-block;
&:active{
transform: translateY(1px);
}
}
}
}
}
.title {
width: 60px;
position: absolute;
left: 10px;
.icon-justify {
font-size: 32px;
line-height: 72px;
display: inline-block;
cursor: pointer;
}
ul {
display: none;
position: absolute;
left: -10px;
top: 71px;
width: 120px;
background-color: #fff;
li {
line-height: 36px;
padding-left: 6px;
&:hover a{
background-color: $themecolor;
color: #fff;
}
a{
color: $themecolor;
padding: 0 6px;
font-size: 18px;
&:active {
background-color: $themehover;
}
}
&.active a{
background-color: $themecolor;
color: #fff;
}
}
}
}
}
}
</style>
vue实用组件——页面公共头部的更多相关文章
- vue实用组件——圆环百分比进度条
因为所在公司临近年底突然宣布Game Over,导致我等小码农又要踏上一个艰辛的求职道路了.才眨眼功夫,年就过完了,快乐的时光总是很匆忙呀. 开年的第一个面试,面试官问我会不会自己写一个圆环进图圈,这 ...
- vue实用组件——表格
之前用了一下vue-bootstrap,感觉里面的表格组件特别好用,但是如果仅仅为了使用表格就引入bootstrap,似乎有点不划算.所以自己就试着实现了一下bootstrap里面表格的部分功能,目前 ...
- vue实现部分页面导入底部 vue配置公用头部、底部,可控制显示隐藏
vue实现部分页面导入底部 vue配置公用头部.底部,可控制显示隐藏 在app.vue文件里引入公共的header 和 footer header 和 footer 默认显示,例如某个页面不需要显示h ...
- URL不变的情况下,最实用的vue刷新当前页面,provide / inject 组合 方式实现vue页面刷新
原文:https://blog.csdn.net/Dream_xun/article/details/83024487 其他参考:https://blog.csdn.net/liyunkun888/a ...
- 17.组件页面应用和vue项目生成
基本示例 这里有一个 Vue 组件的示例: // 定义一个名为 button-counter 的新组件 Vue.component('button-counter', { data: function ...
- 在webpack中配置.vue组件页面的解析
1. 运行`cnpm i vue -S`将vue安装为运行依赖: 2. 运行`cnpm i vue-loader vue-template-compiler -D`将解析转换vue的包安装为开发依赖: ...
- vue父组件获取子组件页面的数组 以城市三级联动为例
父组件调用子组件 <Cselect ref="registerAddress"></Cselect> import Cselect from '../../ ...
- 16款优秀的Vue UI组件库推荐
16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基 ...
- Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例
Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 ...
随机推荐
- 佛祖保佑,永不死机 - /etc/motd文件配置
/etc/motd (message of to day:每日信息) 一.执行命令: cat <<EOT >/etc/motd _oo0oo_ (| -_- |) \ = / ___ ...
- javascript变量浅析
变量声明 javascript 使用var + 变量名 声明变量,因为javascript是弱类型语言, 所有我们可以随意更改已有变量的类型. var b=1; b='2', 另外不同于c#中的var ...
- NET 获取实例所表示的日期是星期几
获取日期枚举,可以根据switch去进行操作 DateTime.Now.DayOfWeek
- ScintillaNET的应用
出于工作需要,需要制作一个嵌入在桌面应用中的C语言编辑器,经过一系列调研,目前ScintillaNET应该是最合适的了,开源.轻便.功能丰富,但是踩得坑也很多,接下面一一说道. 目前Scintilla ...
- ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下
先简单了解一这个几个 名词的意思. 控制反转(IOC) 依赖注入(DI) 并不是某种技术. 而是一种思想.一种面向对象编程法则 什么是控制反转(IOC)? 什么是依赖注入(DI) 可以点击下面链接 ...
- 【转】OAuth的改变
原文地址:http://huoding.com/2011/11/08/126 去年我写过一篇<OAuth那些事儿>,对OAuth做了一些简单扼要的介绍,今天我打算写一些细节,以阐明OAut ...
- 二进制转化为十进制Java实现
二进制转化为十进制 ①按权展开方法Java实现 /* * 按权展开法 */ public static double BinToTen1(String binary) { //查找该二进制是否存在小数 ...
- JobScheduler调度器过程(JobSchedulerService的启动过程)
JobSchedulerService启动过程,最主要工作是从jobs.xml文件收集所有的jobs,放入到JobStore的成员变量mJobSet,转成jobinfo. JobScheduler服务 ...
- List集合和Set集合的遍历方法
Set集合遍历方法: 对 set 的遍历 1.迭代遍历: Set<String> set = new HashSet<String>(); Iterator<String ...
- 一眼看穿flatMap和map的区别
背景 map和flatmap,从字面意思或者官网介绍,可能会给一些人在理解上造成困扰[包括本人],所以今天专门花时间来分析,现整理如下: 首先做一下名词解释---------------------- ...