gpt4 book ai didi

javascript - onclick() 事件 : random appearance of image

转载 作者:行者123 更新时间:2023-11-28 00:58:49 25 4
gpt4 key购买 nike

我的代码在网页中央显示一张图片,如果点击是在图片外部或内部,则执行 2 个不同的操作。我想在每个 onclick() 事件中随机更改图像的位置(无论点击是进入还是退出),同时保持在页面初始大小内。

这两个 Action 都正确完成了,但是图像没有改变位置。谁能告诉我应该更改什么?

<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>

最佳答案

你在这里遇到了一些问题。您在用户单击时调用一个函数,但在该函数中您为单击该图像分配一个事件监听器。在每次点击时继续添加越来越多的事件监听器没有多大意义。我更改了下面的代码以演示一次添加事件监听器,而不是在每次点击时都添加。

其次,action 1action 2 没有任何意义。我将这些注释掉了,因为我不确定您要在那里完成什么。

您还错误地尝试更改图像的顶部和左侧属性。我将其更正为使用 css() 函数。

下面的代码显示了 javascript 中的更改。或者你可以 click here

$(document).ready(function() {

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).css({
top: Math.floor(Math.random() * $(window).height()),
left: Math.floor(Math.random() * $(window).width())});
}, false);
});

关于javascript - onclick() 事件 : random appearance of image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43186086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com