参考内容をもとに
ドットで表示した位置が画像で表示されるものになっています
2枚の画像を用意し画像を重ねた時
違った位置にドットがある場合に重なっていない部分のドットを点滅するようにすることを目指しています
自身でやると画像そのものを点滅することしかできません.
解決方法お分かりの方いましたらよろしくお願いいたします.
下記の一部分のコードは2つ画像選択できるのですが,1つのみ移動させて重ねるものになっています.画像は透過したもので下の部分が見える形になっています.
アドバイスいただけましたらよろしくお願いいたします.
css
1 2.drag-and-drop { 3 cursor: move; 4 position: absolute; 5 z-index: 1000; 6} 7 8.drag { 9 z-index: 1001; 10} 11 12
js
1(function(){ 2 3 //要素の取得 4 var elements = document.getElementsByClassName("drag-and-drop"); 5 6 //要素内のクリックされた位置を取得するグローバル(のような)変数 7 var x; 8 var y; 9 10 //マウスが要素内で押されたとき、又はタッチされたとき発火 11 for(var i = 0; i < elements.length; i++) { 12 elements[i].addEventListener("mousedown", mdown, false); 13 elements[i].addEventListener("touchstart", mdown, false); 14 } 15 16 //マウスが押された際の関数 17 function mdown(e) { 18 19 //クラス名に .drag を追加 20 this.classList.add("drag"); 21 22 //タッチデイベントとマウスのイベントの差異を吸収 23 if(e.type === "mousedown") { 24 var event = e; 25 } else { 26 var event = e.changedTouches[0]; 27 } 28 29 //要素内の相対座標を取得 30 x = event.pageX - this.offsetLeft; 31 y = event.pageY - this.offsetTop; 32 33 //ムーブイベントにコールバック 34 document.body.addEventListener("mousemove", mmove, false); 35 document.body.addEventListener("touchmove", mmove, false); 36 } 37 38 //マウスカーソルが動いたときに発火 39 function mmove(e) { 40 41 //ドラッグしている要素を取得 42 var drag = document.getElementsByClassName("drag")[0]; 43 44 //同様にマウスとタッチの差異を吸収 45 if(e.type === "mousemove") { 46 var event = e; 47 } else { 48 var event = e.changedTouches[0]; 49 } 50 51 //フリックしたときに画面を動かさないようにデフォルト動作を抑制 52 e.preventDefault(); 53 54 //マウスが動いた場所に要素を動かす 55 drag.style.top = event.pageY - y + "px"; 56 drag.style.left = event.pageX - x + "px"; 57 58 //マウスボタンが離されたとき、またはカーソルが外れたとき発火 59 drag.addEventListener("mouseup", mup, false); 60 document.body.addEventListener("mouseleave", mup, false); 61 drag.addEventListener("touchend", mup, false); 62 document.body.addEventListener("touchleave", mup, false); 63 64 } 65 66 //マウスボタンが上がったら発火 67 function mup(e) { 68 var drag = document.getElementsByClassName("drag")[0]; 69 70 //ムーブベントハンドラの消去 71 document.body.removeEventListener("mousemove", mmove, false); 72 drag.removeEventListener("mouseup", mup, false); 73 document.body.removeEventListener("touchmove", mmove, false); 74 drag.removeEventListener("touchend", mup, false); 75 76 //クラス名 .drag も消す 77 drag.classList.remove("drag"); 78 } 79 80})() 81
html
1<div class="drag-and-drop1" id="input_img"> 2 3 </div>
現状
作成
回答1件
あなたの回答
tips
プレビュー