単一の div を除いて、iPhone のページでデフォルトのスクロール アクションを防止したいと考えています。基本的に、誰かが画面上 (画面上の任意の場所) で指をスワイプすると、この 1 つの 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>