我目前正在为 iPhone 开发一个网页,其中包含一个用户可以触摸和拖动的 DIV 元素。另外,当用户将元素拖到设备屏幕的顶部或底部时,我想自动向上或向下滚动页面。
我遇到的问题是试图确定一个可靠的公式来获取 onTouchMove 事件中的坐标,该坐标与用户的手指到达设备视口的顶部或底部相一致。我目前的公式似乎很乏味,我觉得可能有更简单的方法来做到这一点。
我当前确定触摸事件是否已到达屏幕底部的公式:
function onTouchMoveHandler(e)
{
var orientation=parent.window.orientation;
var landscape=(orientation==0 || orientation==180)?true:false;
var touchoffsety=(!landscape?screen.height - (screen.height - screen.availHeight):screen.width - (screen.width - screen.availWidth)) - e.touches[0].screenY + (window.pageYOffset * .8);
if(touchoffsety < 40) alert('finger is heading off the bottom of the screen');
}
我对窗口、文档、正文、e.touches 等对象进行了一些 Javascript 反射,以查看是否可以找到一组总加起来等于屏幕顶部或底部的数字,但不可靠成功。对此的帮助将不胜感激。