Решил задачу:
все дело было в том что в обработчике событий "mousedown / touchstart " оставил return false, что он делает думаю всем известно) и поэтому не работало действие по умолчанию если выполняется часть кода которая отвечает за перемещение по Y.
Решение:
1) Из "mousedown / touchstart" убрать return false;
2) Перед началом выполнения кода, который отвечает за перемещение по X написать:
e.preventDefault();
e.stopImmediatePropagation();
e.cancelBubble = true;
или в конце return false