私はタッチスクリーンで要素をドラッグ/移動するための非常に簡単なコードを持っています。コードは正常に動作しますが、唯一の問題は一般的な問題ですが、どのように試しても、タッチポイントからドラッグするコードを修正できません。代わりに、すべての移動は、最初のタッチ位置に関係なく要素の端から開始します。touchmoveでオフセット位置を見つける方法は?
私はいくつかの提案を見ましたが、すべて失敗しました。私はより小さなより簡単なコードが簡単な修正を引き付けることを望んでいます。ここで
にはJavaScriptを次のとおりです。
<script>
$("#drag").on('touchmove',function(e){
// This is supposed to be the fix,
// but regardless of positioning
// (relative parent) of the divs,
// it is failing ---
var offset = $(this).offset();
var relX =(e.clientX - offset.left);
// By rights the above is the correct solution. But I
// cannot suss out why it is not working.
var touch = e.originalEvent.touches[0];
var x = touch.clientX
$(this).css({
"-webkit-transform": "translate3d("+ x +"px,"+ 0 +"px,0)"
});
});
</script>
<! --And here is the html -->
<body>
<div id="container" class="container">
<div id='drag' class='drag'>
<!---contents--->
</div>
</div>
CSS.
#container{
position:relative;
top: 0%;
left: 0px;
width: 500px;
height: 500px;
background: #ccc;
}
#drag {
position:absolute;
top: 20%;
left: 10px;
width: 150px;
height: 10%;
background: #0a0;
}
ところで、これは完全に異なるコードです。そして、私が必要とする知性をまだ満たしていないと考えると、私は持続するでしょう。 – russbaker2016
ここはjfiddleです。http://jsfiddle.net/xbmyazb2/22/ – russbaker2016
非常に近い呼び出しですが、それでもマークに当たっていません... http://jsfiddle.net/415rxhgy/7/ – russbaker2016