【发布时间】:2021-04-30 08:14:28
【问题描述】:
我正在 iPad (IOS 14.3) 上以纵向模式测试页面。 (见下面的代码)
我正在输出屏幕的触摸 Y 值。 当我点击顶部附近的屏幕时,输出接近 0(取决于手指的粗细)。 当我点击底部附近的屏幕时,输出接近 1000。
但是,当我从上到下垂直滑动时,值从 0 开始,但当我用手指到达底部时,它在 600 附近停止。
另一个目录中的相同问题,当我从底部开始时显示一个大约 1000 的值,当它到达顶部时,它在 300 左右停止。
似乎每个(垂直)方向都缺少 300 像素。
注意:X 值(水平滑动)是准确的,因此我在此示例中将其排除在外。同样在 Android 上,console.log 的输出看起来也不错。
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0, user-scalable=yes">
<style>
body,
html {
position: fixed;
width: 100%;
height: 100%;
margin: 0;
padding 0;
background-color: #AAAAAA;
}
</style>
</head>
<body>
<div style='text-align:center;font-size:25px;width:100px;border:1px solid blue;margin:auto' id='feedback'>Hello</div>
</body>
</html>
<script>
var func = function (e) {
var evt = (typeof e.originalEvent === 'undefined') ? e : e.originalEvent;
var touch = evt.touches[0] || evt.changedTouches[0];
document.getElementById('feedback').textContent = 'top:'+touch.pageY;
};
document.body.addEventListener('touchstart', func);
document.body.addEventListener('touchmove', func);
document.body.addEventListener('touchend', func);
</script>
垂直滑动我得到的结果与触摸屏幕时不同的原因是什么?
【问题讨论】:
标签: javascript ios ipad touch