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的组件库 ...
随机推荐
- Sql递归关联情况,With作为开头条件。
with Test_Recursion(Id,ParentId)AS(select Id,ParentId from [V_KPI_DetailsActivities] where ParentId ...
- Windows 下环境变量设置(命令行)
0. 背景 查了一下 SETX 命令可以实现,先简单看了下帮助.以后再写一个实例. 1. SETX /? 输出内容: SetX 有三种使用方式: 语法 1: SETX [/S system [/ ...
- C++ OCCI API数据库操作之连接、返回查询结果集为json格式
使用C++操作数据库,转换返回结果集为json格式,易于解析. 以下程序的编译.运行环境:Windows 10 1803.VS2017 17.5.2(vc14).解决方案配置:Release.解决方案 ...
- XML hexadecimal value 0x__, is an invalid character
XML操作时异常:(十六进制值 0x__) 是无效的字符. 方法一: 设置 CheckCharacters=false. XmlReaderSettings xmlReaderSettings = n ...
- 02_python_while循环/格式化输出/逻辑运算
一. while循环 1.基本形式 while 条件: 循环体 # 判断条件是否为真,如果真,执行代码块.然后再次判断条件是否为真.如果真继续执行代码块...直到条件变成了假.循环退出 ps:死循环 ...
- 模拟ssh、黏包、hashlib模块
一.模拟ssh 1.subprocess模块 ipconfig -all dir subprocess模块是python从2.4版本开始引入的模块.主要用来取代 一些旧的模块方法,如os.system ...
- 一些浩辰设置及它的bug?
gcad执行快捷键有问题?尝试修改Setvar("autocompletemode", "19");原因是’输入按键时显示建议列表’这个项打钩了,这里首先捕捉的 ...
- window.location API
概述 今天被自己鄙视了,竟然不会用window.location.search进行页面传值.现在好好总结下window.location API,记录一下供以后开发时参考,相信对其它人也有用. 页面传 ...
- idea 安装mybatis plugin (mybatis插件)
注意:可以用免费版本的,就是下面没有 被红框圈中的 Free Mybatis Plugin 安装上以后需要破解,先找到下面的文件 打开文件,设置其中的key 和 value : 这里面的key 和 v ...
- Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效
崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...