Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ant-design-pro-vue
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tianzhuanghu
ant-design-pro-vue
Commits
2e515295
Unverified
Commit
2e515295
authored
Mar 20, 2019
by
Sendya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: scroll fixed header #140
parent
b29f9c4e
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
60 additions
and
15 deletions
+60
-15
GlobalHeader.vue
src/components/page/GlobalHeader.vue
+33
-13
util.js
src/utils/util.js
+27
-2
No files found.
src/components/page/GlobalHeader.vue
View file @
2e515295
<
template
>
<
template
>
<!-- , width: fixedHeader ? `calc(100% - $
{sidebarOpened ? 256 : 80}px)` : '100%' -->
<!-- , width: fixedHeader ? `calc(100% - $
{sidebarOpened ? 256 : 80}px)` : '100%' -->
<a-layout-header
v-if=
"!headerBarFixed"
:class=
"[fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]"
:style=
"
{ padding: '0' }">
<a-layout-header
<div
v-if=
"mode === 'sidemenu'"
class=
"header"
>
v-if=
"!headerBarFixed"
:class=
"[fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]"
:style=
"
{ padding: '0' }"
>
<div
v-if=
"mode === 'sidemenu'"
class=
"header"
>
<a-icon
<a-icon
v-if=
"device==='mobile'"
v-if=
"device==='mobile'"
class=
"trigger"
class=
"trigger"
:type=
"collapsed ? 'menu-fold' : 'menu-unfold'"
:type=
"collapsed ? 'menu-fold' : 'menu-unfold'"
@
click=
"toggle"
></a-icon>
@
click=
"toggle"
></a-icon>
<a-icon
<a-icon
v-else
v-else
class=
"trigger"
class=
"trigger"
:type=
"collapsed ? 'menu-unfold' : 'menu-fold'"
:type=
"collapsed ? 'menu-unfold' : 'menu-fold'"
@
click=
"toggle"
/>
@
click=
"toggle"
/>
<user-menu></user-menu>
<user-menu></user-menu>
</div>
</div>
<div
v-else
:class=
"['top-nav-header-index', theme]"
>
<div
v-else
:class=
"['top-nav-header-index', theme]"
>
<div
class=
"header-index-wide"
>
<div
class=
"header-index-wide"
>
<div
class=
"header-index-left"
>
<div
class=
"header-index-left"
>
<logo
class=
"top-nav-header"
:show-title=
"device !== 'mobile'"
/>
<logo
class=
"top-nav-header"
:show-title=
"device !== 'mobile'"
/>
<s-menu
<s-menu
v-if=
"device !== 'mobile'"
v-if=
"device !== 'mobile'"
mode=
"horizontal"
mode=
"horizontal"
...
@@ -29,7 +44,8 @@
...
@@ -29,7 +44,8 @@
v-else
v-else
class=
"trigger"
class=
"trigger"
:type=
"collapsed ? 'menu-fold' : 'menu-unfold'"
:type=
"collapsed ? 'menu-fold' : 'menu-unfold'"
@
click=
"toggle"
></a-icon>
@
click=
"toggle"
></a-icon>
</div>
</div>
<user-menu
class=
"header-index-right"
></user-menu>
<user-menu
class=
"header-index-right"
></user-menu>
</div>
</div>
...
@@ -43,7 +59,8 @@ import UserMenu from '../tools/UserMenu'
...
@@ -43,7 +59,8 @@ import UserMenu from '../tools/UserMenu'
import
SMenu
from
'../menu/'
import
SMenu
from
'../menu/'
import
Logo
from
'../tools/Logo'
import
Logo
from
'../tools/Logo'
import
{
mixin
}
from
'@/utils/mixin.js'
import
{
mixin
}
from
'@/utils/mixin'
import
{
handleScrollHeader
}
from
'@/utils/util'
export
default
{
export
default
{
name
:
'GlobalHeader'
,
name
:
'GlobalHeader'
,
...
@@ -85,16 +102,19 @@ export default {
...
@@ -85,16 +102,19 @@ export default {
}
}
},
},
mounted
()
{
mounted
()
{
window
.
addEventListener
(
'scroll'
,
this
.
handleScroll
)
const
_this
=
this
handleScrollHeader
(
direction
=>
{
_this
.
handleScroll
(
direction
)
})
},
},
methods
:
{
methods
:
{
handleScroll
()
{
handleScroll
(
direction
)
{
if
(
this
.
autoHideHeader
)
{
if
(
this
.
autoHideHeader
)
{
const
scrollTop
=
window
.
pageYOffset
||
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
const
scrollTop
=
window
.
pageYOffset
||
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
if
(
scrollTop
>
100
)
{
if
(
direction
===
'up'
)
{
this
.
headerBarFixed
=
true
}
else
{
this
.
headerBarFixed
=
false
this
.
headerBarFixed
=
false
}
else
{
scrollTop
>
100
&&
(
this
.
headerBarFixed
=
true
)
}
}
}
else
{
}
else
{
this
.
headerBarFixed
=
false
this
.
headerBarFixed
=
false
...
...
src/utils/util.js
View file @
2e515295
export
function
timeFix
()
{
export
function
timeFix
()
{
const
time
=
new
Date
()
const
time
=
new
Date
()
const
hour
=
time
.
getHours
()
const
hour
=
time
.
getHours
()
return
hour
<
9
?
'早上好'
:
(
hour
<=
11
?
'上午好'
:
(
hour
<=
13
?
'中午好'
:
(
hour
<
20
?
'下午好'
:
'晚上好'
)))
return
hour
<
9
?
'早上好'
:
hour
<=
11
?
'上午好'
:
hour
<=
13
?
'中午好'
:
hour
<
20
?
'下午好'
:
'晚上好'
}
}
export
function
welcome
()
{
export
function
welcome
()
{
const
arr
=
[
'休息一会儿吧'
,
'准备吃什么呢?'
,
'要不要打一把 DOTA'
,
'我猜你可能累了'
]
const
arr
=
[
'休息一会儿吧'
,
'准备吃什么呢?'
,
'要不要打一把 DOTA'
,
'我猜你可能累了'
]
const
index
=
Math
.
floor
(
(
Math
.
random
()
*
arr
.
length
)
)
const
index
=
Math
.
floor
(
Math
.
random
()
*
arr
.
length
)
return
arr
[
index
]
return
arr
[
index
]
}
}
...
@@ -20,6 +20,31 @@ export function triggerWindowResizeEvent () {
...
@@ -20,6 +20,31 @@ export function triggerWindowResizeEvent () {
window
.
dispatchEvent
(
event
)
window
.
dispatchEvent
(
event
)
}
}
export
function
handleScrollHeader
(
callback
)
{
let
timer
=
0
let
beforeScrollTop
=
window
.
pageYOffset
callback
=
callback
||
function
()
{}
window
.
addEventListener
(
'scroll'
,
event
=>
{
clearTimeout
(
timer
)
timer
=
setTimeout
(()
=>
{
let
direction
=
'up'
const
afterScrollTop
=
window
.
pageYOffset
const
delta
=
afterScrollTop
-
beforeScrollTop
if
(
delta
===
0
)
{
return
false
}
direction
=
delta
>
0
?
'down'
:
'up'
callback
(
direction
)
beforeScrollTop
=
afterScrollTop
},
50
)
},
false
)
}
/**
/**
* Remove loading animate
* Remove loading animate
* @param id parent element id or class
* @param id parent element id or class
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment