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

github.com/kakawait/hugo-tranquilpeak-theme.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibaud Lepretre <thibaud.lepretre@gmail.com>2021-08-10 15:49:57 +0300
committerThibaud Lepretre <thibaud.lepretre@gmail.com>2021-08-11 15:04:00 +0300
commitde2f94b4b48c9e32bc0f684014d6c95444c0f291 (patch)
treebb93d3f1e7bf00ca34f2fc1b72aeffc2504cd516
parent0791201693fd0c12a1a9027609d8b7e449fadb30 (diff)
Add support for touch swipe left to close sidebar
-rw-r--r--layouts/partials/head.html3
-rw-r--r--layouts/partials/script.html2
-rwxr-xr-xsrc/js/sidebar.js31
3 files changed, 34 insertions, 2 deletions
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index aa1075f..563a2a8 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -42,7 +42,8 @@
<!--EXTERNAL STYLES-->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css" integrity="sha512-H9jrZiiopUdsLpg94A333EfumgUBpO9MdbxStdeITo+KEIMaNfHNvwyjjDJb+ERPaRS6DpyRlKbvPUasNItRyw==" crossorigin="anonymous" referrerpolicy="no-referrer" /> {{ if .Site.Params.comment.gitalk.enable }}
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css" integrity="sha512-H9jrZiiopUdsLpg94A333EfumgUBpO9MdbxStdeITo+KEIMaNfHNvwyjjDJb+ERPaRS6DpyRlKbvPUasNItRyw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
+ {{ if .Site.Params.comment.gitalk.enable }}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/gitalk/1.7.2/gitalk.css" integrity="sha512-MLcK/YRapzET1qTBXrOiZE6bGBgtATMo2bIyalVJ8EKDEGNoeA3SPQkvWAR0zNS650YG13ocXBMeioDuZcSRuQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
{{ end }}
<!--EXTERNAL STYLES END-->
diff --git a/layouts/partials/script.html b/layouts/partials/script.html
index 43edca0..f64e762 100644
--- a/layouts/partials/script.html
+++ b/layouts/partials/script.html
@@ -1,5 +1,5 @@
<!--EXTERNAL SCRIPTS-->
-<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.slim.min.js" integrity="sha512-6ORWJX/LrnSjBzwefdNUyLCMTIsGoNP6NftMy2UAm1JBm6PRZCO1d7OHBStWpVFZLO+RerTvqX/Z9mBFfCJZ4A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
{{ if eq .Site.Params.syntaxHighlighter "highlight.js" }}
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.1.0/highlight.min.js" integrity="sha512-z+/WWfyD5tccCukM4VvONpEtLmbAm5LDu7eKiyMQJ9m7OfPEDL7gENyDRL3Yfe8XAuGsS2fS4xSMnl6d30kqGQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
{{ else if eq .Site.Params.syntaxHighlighter "prism.js" }}
diff --git a/src/js/sidebar.js b/src/js/sidebar.js
index 1661f88..5d7f13c 100755
--- a/src/js/sidebar.js
+++ b/src/js/sidebar.js
@@ -48,6 +48,37 @@
self.closeSidebar();
}
});
+
+ var xDown = null;
+ var yDown = null;
+
+ $(document).on('touchstart', function(e) {
+ if (self.$sidebar.hasClass('pushed')) {
+ var firstTouch = (e.touches || e.originalEvent.touches)[0];
+ xDown = firstTouch.clientX;
+ yDown = firstTouch.clientY;
+ }
+ }).on('touchmove', function(e) {
+ if ((!xDown || !yDown) || !self.$sidebar.hasClass('pushed')) {
+ return;
+ }
+
+ var xUp = e.touches[0].clientX;
+ var yUp = e.touches[0].clientY;
+
+ var xDiff = xDown - xUp;
+ var yDiff = yDown - yUp;
+
+ if (Math.abs(xDiff) > Math.abs(yDiff)) {
+ if (xDiff > 0) {
+ self.closeSidebar();
+ }
+ }
+
+ xDown = null;
+ yDown = null;
+ });
+
// Detect resize of the windows
$(window).resize(function() {
// Check if the window is larger than the minimal medium screen value