diff --git a/themes/vue/source/js/common.js b/themes/vue/source/js/common.js index a3878e9bce..b33e8e091e 100644 --- a/themes/vue/source/js/common.js +++ b/themes/vue/source/js/common.js @@ -91,7 +91,7 @@ } /** - * Mobile burger menu button for toggling sidebar + * Mobile burger menu button and gesture for toggling sidebar */ function initMobileMenu () { @@ -108,6 +108,27 @@ sidebar.classList.remove('open') } }) + + // Toggle sidebar on swipe + var start = {}, end = {} + + document.body.addEventListener('touchstart', function (e) { + start.x = e.changedTouches[0].clientX + start.y = e.changedTouches[0].clientY + }) + + document.body.addEventListener('touchend', function (e) { + end.y = e.changedTouches[0].clientY + end.x = e.changedTouches[0].clientX + + var xDiff = end.x - start.x + var yDiff = end.y - start.y + + if (Math.abs(xDiff) > Math.abs(yDiff)) { + if (xDiff > 0) sidebar.classList.add('open') + else sidebar.classList.remove('open') + } + }) } /**