1
1
<template >
2
2
<!-- , width: fixedHeader ? `calc(100% - ${sidebarOpened ? 256 : 80}px)` : '100%' -->
3
- <a-layout-header v-if =" !headerBarFixed" :class =" [fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]" :style =" { padding: '0' }" >
4
- <div v-if =" mode === 'sidemenu'" class =" header" >
3
+ <a-layout-header
4
+ v-if =" !headerBarFixed"
5
+ :class =" [fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]"
6
+ :style =" { padding: '0' }"
7
+ >
8
+ <div
9
+ v-if =" mode === 'sidemenu'"
10
+ class =" header"
11
+ >
5
12
<a-icon
6
13
v-if =" device==='mobile'"
7
14
class =" trigger"
8
15
:type =" collapsed ? 'menu-fold' : 'menu-unfold'"
9
- @click =" toggle" ></a-icon >
16
+ @click =" toggle"
17
+ ></a-icon >
10
18
<a-icon
11
19
v-else
12
20
class =" trigger"
13
21
:type =" collapsed ? 'menu-unfold' : 'menu-fold'"
14
- @click =" toggle" />
22
+ @click =" toggle"
23
+ />
15
24
16
25
<user-menu ></user-menu >
17
26
</div >
18
- <div v-else :class =" ['top-nav-header-index', theme]" >
27
+ <div
28
+ v-else
29
+ :class =" ['top-nav-header-index', theme]"
30
+ >
19
31
<div class =" header-index-wide" >
20
32
<div class =" header-index-left" >
21
- <logo class =" top-nav-header" :show-title =" device !== 'mobile'" />
33
+ <logo
34
+ class =" top-nav-header"
35
+ :show-title =" device !== 'mobile'"
36
+ />
22
37
<s-menu
23
38
v-if =" device !== 'mobile'"
24
39
mode =" horizontal"
29
44
v-else
30
45
class =" trigger"
31
46
:type =" collapsed ? 'menu-fold' : 'menu-unfold'"
32
- @click =" toggle" ></a-icon >
47
+ @click =" toggle"
48
+ ></a-icon >
33
49
</div >
34
50
<user-menu class =" header-index-right" ></user-menu >
35
51
</div >
@@ -43,7 +59,8 @@ import UserMenu from '../tools/UserMenu'
43
59
import SMenu from ' ../menu/'
44
60
import Logo from ' ../tools/Logo'
45
61
46
- import { mixin } from ' @/utils/mixin.js'
62
+ import { mixin } from ' @/utils/mixin'
63
+ import { handleScrollHeader } from ' @/utils/util'
47
64
48
65
export default {
49
66
name: ' GlobalHeader' ,
@@ -85,16 +102,19 @@ export default {
85
102
}
86
103
},
87
104
mounted () {
88
- window .addEventListener (' scroll' , this .handleScroll )
105
+ const _this = this
106
+ handleScrollHeader (direction => {
107
+ _this .handleScroll (direction)
108
+ })
89
109
},
90
110
methods: {
91
- handleScroll () {
111
+ handleScroll (direction ) {
92
112
if (this .autoHideHeader ) {
93
113
const scrollTop = window .pageYOffset || document .documentElement .scrollTop || document .body .scrollTop
94
- if (scrollTop > 100 ) {
95
- this .headerBarFixed = true
96
- } else {
114
+ if (direction === ' up' ) {
97
115
this .headerBarFixed = false
116
+ } else {
117
+ scrollTop > 100 && (this .headerBarFixed = true )
98
118
}
99
119
} else {
100
120
this .headerBarFixed = false
0 commit comments