可伸缩自适应的页面头部,屏幕适应范围更广泛

效果如下:

代码如下:

<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>&nbsp;&nbsp;<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实用组件——页面公共头部的更多相关文章

  1. vue实用组件——圆环百分比进度条

    因为所在公司临近年底突然宣布Game Over,导致我等小码农又要踏上一个艰辛的求职道路了.才眨眼功夫,年就过完了,快乐的时光总是很匆忙呀. 开年的第一个面试,面试官问我会不会自己写一个圆环进图圈,这 ...

  2. vue实用组件——表格

    之前用了一下vue-bootstrap,感觉里面的表格组件特别好用,但是如果仅仅为了使用表格就引入bootstrap,似乎有点不划算.所以自己就试着实现了一下bootstrap里面表格的部分功能,目前 ...

  3. vue实现部分页面导入底部 vue配置公用头部、底部,可控制显示隐藏

    vue实现部分页面导入底部 vue配置公用头部.底部,可控制显示隐藏 在app.vue文件里引入公共的header 和 footer header 和 footer 默认显示,例如某个页面不需要显示h ...

  4. URL不变的情况下,最实用的vue刷新当前页面,provide / inject 组合 方式实现vue页面刷新

    原文:https://blog.csdn.net/Dream_xun/article/details/83024487 其他参考:https://blog.csdn.net/liyunkun888/a ...

  5. 17.组件页面应用和vue项目生成

    基本示例 这里有一个 Vue 组件的示例: // 定义一个名为 button-counter 的新组件 Vue.component('button-counter', { data: function ...

  6. 在webpack中配置.vue组件页面的解析

    1. 运行`cnpm i vue -S`将vue安装为运行依赖: 2. 运行`cnpm i vue-loader vue-template-compiler -D`将解析转换vue的包安装为开发依赖: ...

  7. vue父组件获取子组件页面的数组 以城市三级联动为例

    父组件调用子组件 <Cselect ref="registerAddress"></Cselect> import Cselect from '../../ ...

  8. 16款优秀的Vue UI组件库推荐

    16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基 ...

  9. Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例

    Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 ...

随机推荐

  1. Android-Failed to open zip file

    当AndroidStudio加载工程的时候,出现以下错误❌: 解决前的工程目录: 1.将以上错误认真的分析: 2.找到工程的 gradle文件夹/wrapper文件夹/gradle-wrapper.p ...

  2. 关于tableview下拉刷新崩溃的问题

    逻辑应该是这样的:1. 下拉2. 达到下拉临界值以后再请求网络数据3. 待数据加载到本地以后才更新 data source4. reload tableview 如果先清空再下拉,后果就是往下拉的距离 ...

  3. Java 学习的几个基础实验(Learn by doing)

    0 引子 不少情况下,学生连开发环境都搭建不好,有了实验楼,这个问题基本就解决了. 实验楼是国内首家IT在线实训平台,拥有最丰富的计算机在线实验课,而且全部免费.创业团队对师生的服务非常贴心细致. 1 ...

  4. mssql借助链接服务器进行数据快速迁移

    在工作中,遇到了一个任务,需要将A数据库的数据迁移到B数据库,两个数据库的数据结构是一样的.B数据库已经在相当数量的数据了,故而不能通过复制数据库的方式来实现.  旧方法 在对数据迁移的时候,一开始使 ...

  5. fcitx、ibus、scim

    我觉得还是小企鹅fcitx好用点,兼容性好.速度快.配置简单. 在debian stable下,ibus用apt-get install完以后根本就不出现. scim倒是不用配置自己出来了,但是问题多 ...

  6. ASP.NET Core ef启用数据迁移

    创建一个项目 通过Nuget获取EF Core相关的扩展包 appsettings.json 建立数据库连接串 创建数据库上下文EntityDbContext类,用于实体类映射数据库表 使用包管理器控 ...

  7. SQL关闭自增长列标识:SET IDENTITY_INSERT

    关闭自增长列添加记录,然后再恢复自增长功能 SET IDENTITY_INSERT 表名 ON; inert ,); SET IDENTITY_INSERT 表名 OFF

  8. WPF Command CanExecute 触发一次的问题

    昨天在项目中遇到一个问题,按钮bind了Command后,利用CanExecute控制它的是否可点击.结果却在初始化viewmodel的时候执行了一次CanExecute,之后一直不触发,按钮的可用性 ...

  9. 通过EntityFramework操作sqlite(DbFirst)

    记录一下通过 EntityFramework6 来操作sqlite过程 环境: visual studio 2017 .net 4.5 Console Application(项目类型) sqlite ...

  10. python爬虫----XPath

    1.知道本节点元素,如何定位到兄弟元素 详情见博客 XML代码见下 bt1在文档中只出现一次,所以很容易获取到bt1中内容,那怎么根据<td class='bt1'>来获取bt2中的内容 ...