-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathscript.js
103 lines (92 loc) · 2.55 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
(function ($) {
console.log('© Theme-Vexo | https://github.com/yanm1ng/hexo-theme-vexo')
var app = $('.app-body')
var header = $('.header')
var banner = document.getElementById('article-banner') || false
var about = document.getElementById('about-banner') || false
var top = $('.scroll-top')
var catalog = $('.catalog-container .toc-main')
var isOpen = false
$(document).ready(function () {
NProgress.start()
$('#nprogress .bar').css({
'background': '#42b983'
})
$('#nprogress .spinner').hide()
var fade = {
transform: 'translateY(0)',
opacity: 1
}
if (banner) {
app.css('transition-delay', '0.15s')
$('#article-banner').children().css(fade)
}
if (about) {
$('.author').children().css(fade)
}
app.css(fade)
})
window.onload = function () {
setTimeout(function () {
NProgress.done()
}, 200)
}
$('.menu').on('click', function () {
if (!header.hasClass('fixed-header') || isOpen) {
header.toggleClass('fixed-header')
isOpen = !isOpen
}
$('.menu-mask').toggleClass('open')
})
$('#tag-cloud a').on('click', function () {
var list = $('.tag-list')
var name = $(this).data('name')
var maoH = list.find('#' + name).offset().top
$('html,body').animate({
scrollTop: maoH - header.height()
}, 500)
})
$('.reward-btn').on('click', function () {
$('.money-code').fadeToggle()
})
$('.arrow-down').on('click', function () {
$('html, body').animate({
scrollTop: banner.offsetHeight - header.height()
}, 500)
})
$('.toc-nav a').on('click', function (e) {
e.preventDefault()
var catalogTarget = e.currentTarget
var scrollTarget = $(catalogTarget.getAttribute('href'))
var top = scrollTarget.offset().top
if (top > 0) {
$('html,body').animate({
scrollTop: top - 65
}, 500)
}
})
top.on('click', function () {
$('html, body').animate({ scrollTop: 0 }, 600)
})
document.addEventListener('scroll', function () {
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop
var headerH = header.height()
if (banner) {
if (scrollTop > headerH) {
header.addClass('fixed-header')
} else if (scrollTop === 0) {
header.removeClass('fixed-header')
}
}
if (scrollTop > 100) {
top.addClass('opacity')
} else {
top.removeClass('opacity')
}
if (scrollTop > 190) {
catalog.addClass('fixed-toc')
} else {
catalog.removeClass('fixed-toc')
}
})
})(jQuery)