이미지를 클릭하면 위치가 임의로 바뀝니다.
- 이미지에
- 50 픽셀 떨어진 이미지에서
- 이상 50 픽셀 떨어진 이미지 : 나는 클릭이 경우에 따라 하나의 세 가지 다른 소리의 재생하려는.
이렇게하려면 이미지를 이동할 때마다 이미지의 좌표가 업데이트되도록 저장해야합니다. 이 코드를 가지고 :
function move() {
var audio = document.getElementById("audio");
var img = document.getElementById("myImage");
//FIND CENTER OF IMAGE
var offset = $(img).offset();
var width = $(img).width();
var height = $(img).height();
// PLAY DIFFERENT SOUND
document.addEventListener("click", function(e) {
if (e.target === img) {
audio.src = "sound1.mp3";
audio.play();
} else if (e.clientX < (offset.left - 50) || e.clientX > (offset.left + width + 50) || e.clientY < (offset.top - 50) || e.clientY > (offset.top + height + 50)) {
audio.src = "sound2.mp3";
audio.play();
} else {
audio.src = "sound3.mp3";
audio.play();
}
// GENERATE RANDOM LOCATION
// Fix this part
var x = Math.floor(Math.random() * 400);
var y = Math.floor(Math.random() * 400);
img.style.top = x + "px";
img.style.left = y + "px";
img.style.bottom = x - "px";
img.style.right = y - "px";
}, false);
}
이미지의 좌표를 업데이트하는 데 약간의 실수가 있어야합니다. 어떤 아이디어?
? 어떤 오류가 있습니까? 스크립트는 어떻게 작동합니까? – smarber
이미지를 클릭하면 위치가 바뀌고 이미지에 클릭하면 사운드 1이 올바르게 재생되지만 프로그램은 이미지의 위치를 업데이트하지 않으므로 오프셋, 너비 및 높이가 항상 해당 위치에 있습니다. 이미지의 첫 번째 모습 (가운데). 나는 $() 문법을 오용하고 있다고 생각한다. – Gigi
img의 높이, 너비 및 오프셋을 캐시합니다. 선언 및 함수를 이동하여 이러한 매개 변수를 클릭 이벤트 핸들러로 가져옵니다. – Oskar