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的组件库 ...
随机推荐
- 注册Github账户过程
1.首先打开冯老师提供的Github的教程网址:http://www.aehyok.com/Blog/Detail/73.html 2.打开Github的网站(https://github.com/) ...
- CentOS7下让Asp.Net Core的网站自动运行
一.安装Nginx yum install nginx 二.配置Nginx vi /etc/nginx/nginx.conf location / { proxy_pass http://127.0. ...
- win10 17025 触摸bug
This article is written in both English and Chinese. 本文使用中文和英文两个版本. 在 win10 的 17025 可以容易让 UWP 触摸失效.做 ...
- “全栈2019”Java多线程第二十八章:公平锁与非公平锁详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- CE修改器使用教程 [基础篇]
Cheat Engine 是一款内存修改编辑工具 ,它允许你修改你的游戏或软件内存数据,以得到一些其他功能.它包括16进制编辑,反汇编程序,内存查找工具.与同类修改工具相比,它具有强大的反汇编功能, ...
- Redis---基础数据结构
1.String(字符串) 1.1 概述 字符串 string 是 Redis 最简单的数据结构.Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应 ...
- python实用库:PrettyTable 学习
python实用库:PrettyTable 学习 PrettyTable说明 PrettyTable 是python中的一个第三方库,可用来生成美观的ASCII格式的表格,十分实用. 以下为官方介绍: ...
- [Leetcode]303.区域和检索&&304.二维区域和检索
题目 1.区域和检索: 简单题,前缀和方法 乍一看就觉得应该用前缀和来做,一个数组多次查询. 实现方法: 新建一个private数组prefix_sum[i],用来存储nums前i个数组的和, 需要找 ...
- 德哥PostgreSQL学习资料汇总(转)
文章来自:https://yq.aliyun.com/articles/59251?spm=5176.100239.bloglist.95.5S5P9S 德哥博客新地址:https://billtia ...
- Java操作word文档使用JACOB和POI操作word,Excel,PPT需要的jar包
可参考文档: http://wibiline.iteye.com/blog/1725492 下载jar包 http://download.csdn.net/download/javashixiaofe ...