JSFiddle - React, Tailwind, and code Playground
by Anu Vidhya
HTML
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<div id='swipeme' class="swipeme">
swipe me
</div>
CSS
.swipeme {
position: absolute;
top: 0px;
left: 0px;
height: 50px;
width: 300px;
background-color: orange;
color: black;
text-align: center;
padding-top: 20%;
padding-bottom: 20%;
}
.moveposition {
position: absolute;
top: 20px;
left: 0px;
height: 50px;
width: 300px;
background-color: orange;
color: black;
text-align: center;
padding-top: 20%;
padding-bottom: 20%;
}
JavaScript
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 = 20; //min x swipe for horizontal swipe
var max_x = 40; //max x difference for vertical swipe
var min_y = 10; //min y swipe for vertical swipe
var max_y = 10; //max y difference for horizontal swipe
var 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;
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)))) {
if(swipe_det.eX > swipe_det.sX) direc = "r";
else direc = "l";
}
//vertical detection
if ((((swipe_det.eY - min_y > swipe_det.sY) || (swipe_det.eY + min_y < swipe_det.sY)) && ((swipe_det.eX < swipe_det.sX + max_x) && (swipe_det.sX > swipe_det.eX - max_x)))) {
if(swipe_det.eY > swipe_det.sY) {calling();}
else direc = "u";
}
if (direc != "") {
if(typeof func == 'function') func(el,direc);
}
direc = "";
// alert("touchmove");
},false);
}
function myfunction(el,d) {
//alert("you swiped on element with id '"+el+"' to "+d+" direction");
if(d == "d")
{
calling();
}
}
detectswipe('swipeme',myfunction);
function calling()
{
$("#swipeme").removeClass("swipeme");
$("#swipeme").addClass("moveposition");
}
$("#swipeme").click(function(){
$("#swipeme").removeClass("moveposition");
...