Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/AmazingRise/hugo-theme-diary.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoramazingrise <8315221+AmazingRise@users.noreply.github.com>2021-05-14 07:37:14 +0300
committeramazingrise <8315221+AmazingRise@users.noreply.github.com>2021-05-14 07:37:14 +0300
commit67dcd4949d63350f71fdbcfbbe75b8b581dc07b7 (patch)
treeb489a919d8f27590820b012822ee730a7ceb80dd
parent368250ef26613ab014bb78a2bbdea0f45cc8c4b7 (diff)
Remove redundant scripts and improvements on toc.
-rw-r--r--layouts/partials/head.html6
-rw-r--r--layouts/partials/journal.html18
-rw-r--r--static/js/toc-collapse.js10
-rw-r--r--static/js/toc.js47
4 files changed, 52 insertions, 29 deletions
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index efbd13f..d142f2d 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -31,10 +31,6 @@
{{ template "_internal/google_analytics.html" . }}
{{ end }}
-<script src="{{"/vendor/js/jquery.min.js" | relURL}}" ></script>
-<script src="{{"/vendor/js/popper.min.js" | relURL}}" ></script>
-<script src="{{"/vendor/js/bootstrap.min.js" | relURL}}" ></script>
-<script src="{{"/vendor/js/smooth-scroll.polyfills.min.js" | relURL}}" ></script>
<link type="text/css" rel="stylesheet" href="{{"/vendor/css/bootstrap.min.css" | relURL}}">
<script src="{{"/vendor/js/vue.min.js" | relURL}}" ></script>
@@ -72,7 +68,9 @@
{{ if .Site.Params.disableAutoCollapse }}
<script src="{{"/js/toc.js" | relURL}}"></script>
{{ else }}
+ <script src="{{"/vendor/js/jquery.min.js" | relURL}}" ></script>
<script src="{{"/js/toc-collapse.js" | relURL}}"></script>
+ <script src="{{"/vendor/js/bootstrap.min.js" | relURL}}" ></script>
{{ end }}
{{ end }}
diff --git a/layouts/partials/journal.html b/layouts/partials/journal.html
index 95cdfe5..ea7ee66 100644
--- a/layouts/partials/journal.html
+++ b/layouts/partials/journal.html
@@ -59,6 +59,18 @@ app = new Vue({
document.cookie = "night=0;path=/";
document.body.classList.remove("night");
}
+ },
+ throttle(callback, limit) {
+ var wait = false;
+ return function (...args) {
+ if (!wait) {
+ callback(...args);
+ wait = true;
+ setTimeout(function () {
+ wait = false;
+ }, limit);
+ }
+ }
}
},
created() {
@@ -123,6 +135,12 @@ app = new Vue({
elem.classList.add("table-responsive");
elem.classList.add("table-hover");
})
+
+ {{ if and (not (.Params.disableToC) ) (.IsPage) }}
+ spy();
+ window.addEventListener('wheel', this.throttle(spy,200), false);
+ {{ end }}
+
},
destroyed() {
window.removeEventListener('scroll', this.handleScroll);
diff --git a/static/js/toc-collapse.js b/static/js/toc-collapse.js
index 25212a4..b106ee2 100644
--- a/static/js/toc-collapse.js
+++ b/static/js/toc-collapse.js
@@ -31,16 +31,6 @@ var spy = function () {
collapseOthers(currentIndex);
}
-var onNavClick = function (name) {
- var elems = $(":header");
- elems.each(function (idx) {
- var id = $(this).attr('id');
- if (name == '#' + id + '-nav') {
- collapseOthers(idx);
- return;
- }
- });
-}
var collapseOthers = function (currentIndex) {
if (currentIndex == -1) {
diff --git a/static/js/toc.js b/static/js/toc.js
index accf88d..518850a 100644
--- a/static/js/toc.js
+++ b/static/js/toc.js
@@ -1,36 +1,53 @@
var spy = function () {
- var elems = $(":header");
+ var elems = document.querySelectorAll("h1, h2, h3, h4, h5, h6");
if (elems.length == 0) {
return;
}
- var currentTop = $(window).scrollTop();
- var currentBottom = $(window).scrollTop() + $(window).height();
- var pageBottom = $('#EOF').offset().top;
+ var supportPageOffset = window.pageXOffset !== undefined;
+ var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat");
+
+ var currentTop = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;
+ var currentBottom = currentTop + window.height;
+ var pageBottom = window.pageBottom;
var meetUnread = false
var currentIndex = -1
- elems.each(function (idx) {
- var elemTop = $(this).offset().top;
- var id = $(this).attr('id');
- var navElem = $('#' + id + '-nav');
- if (currentTop + $(this).height() >= elemTop || currentBottom >= pageBottom) {
- navElem.addClass('toc-active');
+ elems.forEach(function (elem, idx) {
+ var elemTop = elem.offsetTop;
+ var id = elem.getAttribute('id');
+ //console.log(id,elem.offsetTop)
+ var navElem = document.getElementById(id + '-nav');
+ if (navElem==null) {
+ return
+ }
+ if (currentTop >= elemTop || currentBottom >= pageBottom) {
+
+ navElem.classList.add('toc-active');
} else {
if (meetUnread == false) {
meetUnread = true
currentIndex = idx - 1
}
- navElem.removeClass('toc-active');
+ navElem.classList.remove('toc-active');
}
})
+ document.querySelectorAll(".collapse").forEach(function(elem){
+ elem.classList.remove("collapse");
+ })
}
-$().ready(function () {
+
+var onNavClick = function () {
+
+}
+
+
+/*$().ready(function () {
$(".collapse").each(function (idx) {
$(this).collapse("show");
});
- spy();
- $(window).bind('scroll', throttle(spy));
-});
+ //spy();
+ //$(window).bind('scroll', throttle(spy));
+});*/
function throttle(func, timeout = 250) {
let last;