我的代碼在網頁的中心顯示圖片,如果點擊是在圖片的外部或內部,則會執行2種不同的操作。我想在每個onclick()事件中隨機更改圖像的位置(不管點擊是在還是在外),同時保持頁面初始大小。Onclick()事件:圖片的隨機出現
這兩個操作都正確完成,但圖像不會更改位置。有人能告訴我我應該改變什麼嗎?
<html>
<head>
<title>random position</title>
</head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js">
$(window).height();
$(window).width();
</script>
<body>
<style>
#myImage { position: absolute;
top:0;
bottom: 0;
left: 0;
right: 0;
margin:auto; }
</style>
<script>
function moveImg() {
var img = document.getElementById("myImage");
var width = $(img).width();
var height = $(img).height();
document.addEventListener("click", function(e) {
var offset = $(img).offset();
if (e.target === img) {
action 1;
}
else {
action 2;
}
// GENERATE RANDOM LOCATION IN BOTH CASES
img.offset.left = Math.floor(Math.random() * (window.width()- 0) + 0);
img.offset.top = Math.floor(Math.random() * (window.height()- 0) + 0);
}, false);
}
</script>
<img id="myImage" src="img.gif" onclick="moveImg()">
</body>
</html>
「行動1」和「行動2」是什麼意思?我的猜測是當你執行這段代碼時你會得到一個JS錯誤。您還不斷添加越來越多的事件偵聽器,每次點擊... –
不,如果我運行相同的代碼沒有隨機位置部分是行得通的。在我用另一種方法產生rondom posion之前(下)。它工作,但它不完全正確:/ * var x = Math.floor(Math.random()*(max - min)+ min);數學式(Math.random()*(max-min)+ min); img.style.top = x +「px」; img.style.left = y +「px」; */ – Gigi
對不起,這裏是我用來改變位置的代碼:var x = Math.floor(Math.random()* 400); var y = Math.floor(Math.random()* 400); img.style.top = x +「px」; img.style.left = y +「px」; – Gigi