56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
const l_body = document.querySelector('.l_body');
|
|
|
|
// 弹出侧边栏
|
|
function toggleSidebar() {
|
|
if (l_body) {
|
|
l_body.classList.add('mobile');
|
|
l_body.classList.toggle("sidebar");
|
|
}
|
|
}
|
|
|
|
function setToc() {
|
|
const scrollOffset = 32;
|
|
var segs = [];
|
|
$("article.md :header").each(function (idx, node) {
|
|
segs.push(node)
|
|
});
|
|
// 滚动
|
|
$(document, window).scroll(function(e) {
|
|
var scrollTop = $(this).scrollTop();
|
|
var topSeg = null
|
|
for (var idx in segs) {
|
|
var seg = $(segs[idx])
|
|
if (seg.offset().top > scrollTop + scrollOffset) {
|
|
continue
|
|
}
|
|
if (!topSeg) {
|
|
topSeg = seg
|
|
} else if (seg.offset().top >= topSeg.offset().top) {
|
|
topSeg = seg
|
|
}
|
|
}
|
|
if (topSeg) {
|
|
$("#toc a.toc-link").removeClass("active")
|
|
var link = "#" + topSeg.attr("id")
|
|
if (link != '#undefined') {
|
|
$('#toc a.toc-link[href="' + encodeURI(link) + '"]').addClass("active")
|
|
} else {
|
|
$('#toc a.toc-link:first').addClass("active")
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function setSedebar() {
|
|
$("#toc a.toc-link").click(function(e) {
|
|
l_body.classList.remove("sidebar");
|
|
});
|
|
$(".social-wrap a.comment").click(function(e) {
|
|
l_body.classList.remove("sidebar");
|
|
});
|
|
}
|
|
|
|
$(function () {
|
|
setToc();
|
|
setSedebar();
|
|
}); |