我想阻止我在 iPhone 上的页面上的默认滚动操作,但单个 div 除外。基本上,当有人在屏幕上滑动手指时——屏幕上的任何地方——这个单一的 div 应该移动。当有人直接触摸 div 元素时,我使用的代码可以正常工作,但否则 div 的位置非常不稳定。我在哪里搞砸了?这是我在Safari Developer Library中找到的内容的松散修改。
<div id="testdiv">
test test test test
</div>
<script type="text/javascript">
var startY = document.getElementById("testdiv").offsetTop;
var curY = startY;
var touchY;
document.addEventListener('touchstart', function(event) {
touchY = event.targetTouches[0].pageY;
}, false);
document.addEventListener('touchmove',function(event) {
event.preventDefault();
curY = event.targetTouches[0].pageY - startY - touchY;
document.getElementById("testdiv").style.webkitTransform = 'translate(0px,' + curY + 'px)';
}, false);
document.addEventListener('touchend',function(event) {
startY = curY;
}, false);
</script>