Skip to content

Instantly share code, notes, and snippets.

@dsdeur
Created July 5, 2014 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dsdeur/ca4fd50eebd928d990a3 to your computer and use it in GitHub Desktop.
Save dsdeur/ca4fd50eebd928d990a3 to your computer and use it in GitHub Desktop.
Touch x-draggable
var DDraggable = function(element, options) {
var base = this;
base.el = element;
var offset = null;
var temp_offset = 0;
var first = true;
var y = 0;
base.init = function() {
base.el.addEventListener('touchstart', touchStart, false);
};
function touchStart(e) {
if (e.changedTouches.length > 1) {
return;
}
base.el.addEventListener('touchmove', dragMove, false);
base.el.addEventListener('touchend', dragEnd, false);
y = e.changedTouches[0].pageY;
offset = e.changedTouches[0].pageX - temp_offset;
}
function touchMove(e) {
console.log('touchmoveX', e.changedTouches[0].pageX);
console.log('touchmoveY', e.changedTouches[0].pageY);
if (Math.abs(e.changedTouches[0].pageY - y) > 5 && first) {
base.removeEventListener('touchmove', dragMove);
return;
}
first = false;
e.preventDefault();
var left = e.changedTouches[0].pageX - offset;
transfromString = ('translate3d(' + left + 'px, 0, 0)');
base.el.style.webkitTransform = transfromString;
base.el.style.MozTransform = transfromString;
base.el.style.msTransform = transfromString;
base.el.style.OTransform = transfromString;
base.el.style.transform = transfromString;
temp_offset = left;
}
function touchEnd(e) {
first = true;
offset = temp_offset;
base.el.removeEventListener('touchemove', dragMove, false);
base.el.removeEventListener('touchend', dragEnd, false);
}
init();
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment