/* ------------- Drag for Mouse and Mobile devices ------------- */
var useMobileDrag = false;
var isiPad = navigator.userAgent.match(/iPad/i) != null;
var isiPhone = navigator.userAgent.match(/iPhone/i) != null;
var isiPod = navigator.userAgent.match(/iPod/i) != null;
if (isiPad || isiPhone || isiPod) useMobileDrag = true;
/**/
var isDragging = false;
var OnDrag = false;
var originalX;
var currentX;
var dragLengthX;
function dragStart(event) {
OnDrag = true;
dragLengthX = 0;
isDragging = true;
originalX = (useMobileDrag ? event.targetTouches[0].pageX : event.pageX);
return false
};
function dragMove(event) {
if (OnDrag){
currentX = (useMobileDrag ? event.targetTouches[0].pageX : event.pageX);
dragLengthX = currentX - originalX;
if (Math.abs(dragLengthX)<2) {
return false
}
else{
box.css({
'-webkit-transition-timing-function': settings.easingCss,
'-webkit-transition-duration': 0 + 'ms',
'-webkit-transform': 'translate3d(' + dragLengthX + 'px, 0px, 0px)',
'transition-timing-function': settings.easingCss,
'transition-duration': 0 + 'ms',
'transform': 'translate3d(' + dragLengthX + 'px, 0px, 0px)'
});
}
}
return false
};
function dragCancel(){console.log("canseling swipe")}
function dragEnd(){
OnDrag = false;
wrapperHalfWidth = box.parent().width() * settings.animPartofScrennToSlide
if (Math.abs(dragLengthX) > wrapperHalfWidth ){
this.removeEventListener((useMobileDrag ? "touchstart" : "mousedown"), dragStart, false);
this.removeEventListener((useMobileDrag ? "touchmove" : "mousemove"), dragMove, false);
this.removeEventListener((useMobileDrag ? "touchend" : "mouseup"), dragEnd, false);
this.removeEventListener("touchcancel", dragCancel, false);
var Direction = dragLengthX > 0;
settings.prevNextClickCallback(outerSlCounter, Direction ? FORWARD : BACK);
setTimeout(function(){
this.addEventListener((useMobileDrag ? "touchstart" : "mousedown"), dragStart, false);
this.addEventListener((useMobileDrag ? "touchmove" : "mousemove"), dragMove, false);
this.addEventListener((useMobileDrag ? "touchend" : "mouseup"), dragEnd, false);
this.addEventListener("touchcancel", dragCancel, false);
}, 500);
return SlideTo(outerSlCounter + (Direction ? -1 : 1));
}
else{
dragLengthX = 0;
box.css({
'-webkit-transition-timing-function': settings.easingCss,
'-webkit-transition-duration': settings.animDragTime + 'ms',
'-webkit-transform': 'translate3d(' + dragLengthX + 'px, 0px, 0px)',
'transition-timing-function': settings.easingCss,
'transition-duration': settings.animDragTime + 'ms',
'transform': 'translate3d(' + dragLengthX + 'px, 0px, 0px)'
});
}
isDragging = false;
originalX = 0;
};
this.addEventListener((useMobileDrag ? "touchstart" : "mousedown"), dragStart, false);
this.addEventListener((useMobileDrag ? "touchmove" : "mousemove"), dragMove, false);
this.addEventListener((useMobileDrag ? "touchend" : "mouseup"), dragEnd, false);
this.addEventListener("touchcancel", dragCancel, false);