Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
计算机应用开发
前端
Vuepress
提交
6b9b38b4
V
Vuepress
项目概览
计算机应用开发
/
前端
/
Vuepress
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
Vuepress
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
6b9b38b4
编写于
11月 18, 2018
作者:
U
ULIVZ
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat($active-header-links): simplify implementation
上级
5b0cdcf5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
6 addition
and
33 deletion
+6
-33
packages/@vuepress/plugin-active-header-links/mixin.js
packages/@vuepress/plugin-active-header-links/mixin.js
+6
-33
未找到文件。
packages/@vuepress/plugin-active-header-links/mixin.js
浏览文件 @
6b9b38b4
...
...
@@ -26,8 +26,7 @@ function calculateCurrentAnchor (anchors) {
return
anchors
[
0
]
}
function
getAnchors
()
{
const
sidebarLinks
=
[].
slice
.
call
(
document
.
querySelectorAll
(
AHL_SIDEBAR_LINK_SELECTOR
))
function
getAnchors
(
sidebarLinks
)
{
return
[].
slice
.
call
(
document
.
querySelectorAll
(
AHL_HEADER_ANCHOR_SELECTOR
))
.
filter
(
anchor
=>
sidebarLinks
.
some
(
sidebarLink
=>
sidebarLink
.
hash
===
anchor
.
hash
))
...
...
@@ -41,49 +40,23 @@ function getAnchors () {
})
}
let
freezeScrollEvent
=
true
export
default
{
mounted
()
{
this
.
$router
.
beforeEach
((
to
,
from
,
next
)
=>
{
if
(
to
.
path
!==
from
.
path
)
{
freezeScrollEvent
=
true
}
next
()
})
this
.
$vuepress
.
$on
(
'
AsyncMarkdownContentMounted
'
,
(
slotKey
)
=>
{
// delay activation of scroll event
setTimeout
(()
=>
{
freezeScrollEvent
=
false
},
1000
)
if
(
slotKey
===
'
default
'
)
{
window
.
addEventListener
(
'
scroll
'
,
()
=>
this
.
onScroll
(
freezeScrollEvent
)
)
window
.
addEventListener
(
'
scroll
'
,
this
.
onScroll
)
}
})
this
.
$vuepress
.
$on
(
'
AnchorHashChange
'
,
(
anchor
)
=>
{
// When user clicked sidebar links, we need to disable the scroll
// event triggered.
if
(
this
.
$route
.
hash
===
anchor
.
hash
)
{
return
}
this
.
$vuepress
.
$set
(
'
disableScrollBehavior
'
,
true
)
this
.
$router
.
replace
(
decodeURIComponent
(
anchor
.
hash
),
()
=>
{
// execute after scrollBehavior handler.
this
.
$nextTick
(()
=>
{
this
.
$vuepress
.
$set
(
'
disableScrollBehavior
'
,
false
)
})
})
this
.
$router
.
replace
(
decodeURIComponent
(
anchor
.
hash
))
})
},
methods
:
{
onScroll
:
throttle
(
function
(
freezeScrollEvent
)
{
if
(
freezeScrollEvent
)
{
return
}
const
anchors
=
getAnchors
()
onScroll
:
throttle
(
function
()
{
this
.
$sidebarLinks
=
[].
slice
.
call
(
document
.
querySelectorAll
(
AHL_SIDEBAR_LINK_SELECTOR
))
const
anchors
=
getAnchors
(
this
.
$sidebarLinks
)
if
(
anchors
.
length
===
0
)
{
return
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录