Ich habe einen wirklich einfachen Code zum Ziehen/Bewegen eines Elements über den Touchscreen. Der Code funktioniert gut, das einzige Problem ist ein häufiges Problem, aber egal wie ich es versuche, ich kann den Code nicht reparieren, der vom Touchpoint gezogen wird. Stattdessen beginnt jede Bewegung von der Kante des Elements unabhängig von der anfänglichen Berührungsposition.Wie finde ich die Offset-Position mit Touchmove?
Ich habe ein paar Vorschläge gesehen, aber alle haben versagt. Ich hoffe, dass der kleinere einfachere Code eine einfache Lösung anzieht. Hier
ist das 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;
}
Kein Duplikat übrigens, das ist ein ganz anderer Code. Und wenn ich bedenke, dass ich die Intelligenz, die ich benötige, noch erfüllen muss, werde ich bestehen bleiben. – russbaker2016
Hier ist ein Jfiddle http://jsfiddle.net/xbmyazb2/22/ – russbaker2016
Sehr nah Call, aber immer noch nicht ganz die Marke treffen ... http://jsfiddle.net/415rxhgy/7/ – russbaker2016