/ / Не прокручуватиме вгору, коли я використовую цей прокручуючий прослуховувач - javascript, jquery

Не прокручуйте вгору, коли я використовую цей прокручуваний слухач - javascript, jquery

if(window.location.pathname == "/"){
var direc; //swipe direction var
function detectswipe(el,func) {
swipe_det = new Object();
swipe_det.sX = 0; swipe_det.sY = 0; swipe_det.eX = 0; swipe_det.eY = 0;
var min_x = 40;  //min x swipe for horizontal swipe
var max_y = 60;  //max y difference for horizontal swipe
direc = "";
ele = document.getElementById(el);
ele.addEventListener("touchstart",function(e){
var t = e.touches[0];
swipe_det.sX = t.screenX;
swipe_det.sY = t.screenY;
},false);
ele.addEventListener("touchmove",function(e){
e.preventDefault();
var t = e.touches[0];
swipe_det.eX = t.screenX;
swipe_det.eY = t.screenY;
},false);
ele.addEventListener("touchend",function(e){
//horizontal detection
if ((((swipe_det.eX - min_x > swipe_det.sX) || (swipe_det.eX + min_x < swipe_det.sX)) && ((swipe_det.eY < swipe_det.sY + max_y) && (swipe_det.sY > swipe_det.eY - max_y) && (swipe_det.eX > 0)))) {
if(swipe_det.eX > swipe_det.sX) direc = "r";
else direc = "l";
}

if (direc != "") {
if(typeof func == "function") func(el,direc);
}
direc = "";
swipe_det.sX = 0; swipe_det.sY = 0; swipe_det.eX = 0; swipe_det.eY = 0;
},false);
}

jQuery(document).ready(function ($) {
var timer = setInterval(function () {
moveRight();
}, 5500); //keeps the slideshow moving

Я не можу отримати сторінку для прокрутки вгору або внизпроведення за допомогою цієї функції. Це повинно бути виявлення пальцем вліво-вправо. Очевидно, воно все ще прокручується, коли воно не слухає дотику / проведення. Будь-яка допомога буде вдячна!

Відповіді:

0 для відповіді № 1

Спробуйте це, це дуже просто, але це може допомогти. https://jsfiddle.net/kyb3Lkqd/

var startingLocation = {x: 0, y:0};

$(document).on("touchstart", "#swp", function(e){
console.log(e);
startingLocation = {
x: e.touches[0].clientX,
y: e.touches[0].clientY
};
});

$(document).on("touchmove", "#swp", function(e){
console.log(e, e.touches[0].clientX, e.touches[0].clientY);
if (startingLocation.x < e.touches[0].clientX){
console.log("swiping right!");
} else if (startingLocation.x > e.touches[0].clientX){
console.log("swiping left!");
}

});

0 для відповіді № 2

Це неймовірно просто; я майже збентеженийне бачив його там спочатку. В оригіналі я мав e.preventDefault (); щоб відключити горизонтальну прокрутку при проведенні елемента. Мені це більше не потрібно (я думаю), тому що у мене переповнення: приховане включення; які роблять цю лінію зайвою. Видалення, що змушує його працювати бездоганно.