javascript - 当鼠标指针进入元素时改变随机数的div的位置

标签 javascript jquery html css

我不知道如何在 jquery 中循环创建 div,也不知道如何使用“鼠标悬停”功能更改它们的位置。这是我创建 div 元素的代码,但元素的位置没有改变。谁能帮我更正我的代码?

var r, g, b, counter, i;
//generate random number between 20 and number.
function generateRandomNumber(number) {
  return Math.floor(Math.random() * (number - 20)) + 20;
}
// maximum number of random elements is 30.
counter = generateRandomNumber(30);
for (i = 0; i < counter; i++) {
  var div = $("<div/>");
  div.id = "randomlyPlaced" + i;
  //random style for the elements
  r = generateRandomNumber(255);
  g = generateRandomNumber(255);
  b = generateRandomNumber(255);
  $(div).css({
    position: "absolute",
    background: "rgb(" + r + "," + g + "," + b + ")",
    height: generateRandomNumber(200) + "px",
    width: generateRandomNumber(400) + "px",
    top: generateRandomNumber(500) + "px",
    left: generateRandomNumber(1000) + "px"
  });
  //append the elements to body.
  $('body').append(div);
  //change the position of the element.
  $("#" + div.id).mouseover(function() {
    $(this).animate({
      top: generateRandomNumber(500) + "px",
      left: generateRandomNumber(1000)
    }, 500, "linear");
  })
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<!DOCTYPE html>
<html>

<head>
  <title>Randomly Placed Animated rectangles</title>
</head>

<body style="width: 80%; height: 80%; background-color :rgb(164, 173, 
    226); position:relative;">
  <div id='+div.id+'></div>
</body>

</html>

最佳答案

您需要使用 div 对象本身而不是 "#"+div.id 原因是当元素加载到 DOM 中时此 id 有效,但事实并非如此如果您动态生成 div。

$(div).mouseover(function(){
  $(this).animate({
         top: generateRandomNumber(500) + "px", 
         left:generateRandomNumber(1000)
      },500,"linear");
});

检查 fiddle https://jsfiddle.net/stdeepak22/t5w6cm9x/

关于javascript - 当鼠标指针进入元素时改变随机数的div的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54145545/

相关文章:

javascript - 获取span文本内容

javascript - typeof a == 'undefined' vs typeof a === 'undefined'

javascript - 如何自动关闭 BootStrap 警报?

html - 该值不会从下拉列表发送到 Express.js

javascript - document.executeCommand ('paste' ) 在 chrome 中不起作用

javascript - 轮询时 promise 异步等待

javascript - 如何从 jQuery 中的附加元素发送 AJAX 请求

jquery - 从 iframe 在父窗口中显示 jQuery PrettyPhoto 灯箱

javascript - 根据比较值更改文本颜色 (Javascript/CSS)

jquery - 如何找出在 <select> 中选择了哪个选项以及如何转义名称?