From 16b3b78e179681771210b208f90faf5d7c5aa0aa Mon Sep 17 00:00:00 2001 From: r888888888 Date: Tue, 26 Sep 2017 14:17:31 -0700 Subject: [PATCH] add dedicated handler for swipe gestures --- app/assets/javascripts/posts.js | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/posts.js b/app/assets/javascripts/posts.js index b2ad56456..487ae241c 100644 --- a/app/assets/javascripts/posts.js +++ b/app/assets/javascripts/posts.js @@ -46,8 +46,8 @@ if (!mq.matches) { return; } - var hasPrev = $("a[rel~=prev]").length; - var hasNext = $("a[rel~=next]").length; + var hasPrev = $("#a-show").length || $(".paginator a[rel~=prev]").length; + var hasNext = $(".paginator a[rel~=next]").length; $("body").hammer().bind("panend", function(e) { var percentage = e.gesture.deltaX / window.innerWidth; @@ -56,10 +56,10 @@ return; } else if ((percentage > 0.3 || (percentage > 0.1 && swipe)) && hasPrev) { $("body").css({"transition-timing-function": "ease", "transition-duration": "0.3s", "opacity": "0", "transform": "translateX(150%)"}); - $.timeout(300).done(function() {Danbooru.Post.nav_prev(e)}); + $.timeout(300).done(function() {Danbooru.Post.swipe_prev(e)}); } else if (percentage < -0.3 || (percentage < -0.1 && swipe) && hasNext) { $("body").css({"transition-timing-function": "ease", "transition-duration": "0.3s", "opacity": "0", "transform": "translateX(-150%)"}); - $.timeout(300).done(function() {Danbooru.Post.nav_next(e)}); + $.timeout(300).done(function() {Danbooru.Post.swipe_next(e)}); } else { $("body").css({"transition-timing-function": "ease", "transition-duration": "0.5s", "transform": "none"}); } @@ -158,10 +158,18 @@ }); } - Danbooru.Post.nav_prev = function(e) { + Danbooru.Post.swipe_prev = function(e) { if ($("#a-show").length) { window.history.back(); - } else if ($("#search-seq-nav").length) { + } if ($(".paginator a[rel~=prev]").length) { + location.href = $("a[rel~=prev]").attr("href"); + } + + e.preventDefault(); + } + + Danbooru.Post.nav_prev = function(e) { + if ($("#search-seq-nav").length) { var href = $("#search-seq-nav a[rel~=prev]").attr("href"); if (href) { location.href = href; @@ -194,6 +202,14 @@ e.preventDefault(); } + Danbooru.Post.swipe_next = function(e) { + if ($(".paginator a[rel~=next]").length) { + location.href = $(".paginator a[rel~=next]").attr("href"); + } + + e.preventDefault(); + } + Danbooru.Post.initialize_shortcuts = function() { if ($("#a-show").length) { Danbooru.keydown("e", "edit", function(e) {