我通过提示获取用户的名字,并希望用鼠标光标将用户的名字粘贴在包含名称的div上。但它不起作用。我的div不会在光标下编织。问题是什么我的代码?
<body>
<div id="myDiv1"></div>
<script>
var n = window.prompt("Enter your name please", "");
var t = document.getElementsById("myDiv1").offsetTop;
var l = document.getElementsById("myDiv1").offsetLeft;
function myPointer() {
document.addEventListener('mousemove', function(e) {
var x = e.pageX;
var y = e.pageY;
t = y;
l = x;
})
}
myPointer();
</script>
</body>
答案 0 :(得分:2)
正如其他人所提到的,语法为getElementById
而不是getElementsById
。
此外,您似乎试图通过引用设置offsetTop
和offsetLeft
。首先,offsetLeft
和offsetTop
是只读的。其次,更改已设置为元素属性的变量不会更改属性本身的值。
我通过使用style
直接设置CSS定义获得了成功:
var mydiv1=document.getElementById("myDiv1");
document.addEventListener('mousemove', function (e) {
var x = e.pageX;
var y = e.pageY;
mydiv1.style.top = y + 'px';
mydiv1.style.left = x + 'px';
});
您可以通过添加或减去<div>
和x
值来调整y
相对于鼠标位置的位置。例如:
mydiv1.style.top = (y-15)+ 'px';
mydiv1.style.left = (x-8) + 'px';