function ontouch(el, callback) {
var touchsurface = el, // get element for scrollLeft
startX, // get start horizontal position
startY, // get start vertical position
distX, // get horizontal distance
distY, // get vertical distance
positionX,
newPositionX;
touchsurface.addEventListener("touchstart", function(e) {
e.preventDefault();
var touchobj = e.changedTouches[0];
positionX = -touchsurface.scrollLeft; // get current position scrollLeft element
startX = touchobj.pageX;
startY = touchobj.pageY;
});
touchsurface.addEventListener("touchmove", function(e) {
var touchobj = e.changedTouches[0];
distX = touchobj.pageX - startX;
distY = touchobj.pageY - startY;
if (Math.abs(distX) > Math.abs(distY)) {
e.preventDefault();
newPositionX = positionX + distX;
touchsurface.scrollLeft = -newPositionX; // move element to left via touchMove event (i'm using negative, so it's like mobile app behavior
}
else{ // else consider this a vertical movement
return false; // it's not working here
}
});
因此,当我向左或向右滑动时,它会移动,因为我使用 scrollLeft 。 但是,如果我向向上或向移动到此元素,它根本不会触发任何内容,它只是堆叠在该位置(它& #39;冻结)。 我的问题,我想ontouch功能只能在水平左右滑动,而不是向上和向下滑动。
所以,如果有人向上或向下滑动到此元素,我想要的是,它就像正常行为,a.k.a scrollTop文档。
如何让这件事有效?
我的代码出了什么问题?谢谢..
答案 0 :(得分:1)
旧帖子,但也许它可以帮助别人。有同样的问题并通过忽略mouseMove来解决它:
func test() -> Bool {
...
_session.list("/") { (resources, error) -> Void in
println("List directory with result:\n\(resources), error: \(error)\n\n")
if error != nil {
return true
} else {
return false
}
}
}