我有以下代码:
function contextMenu() {
var menu = document.createElement("div");
menu.innerHTML = "MY MENU";
menu.style.position = 'absolute';
menu.style.left = tempX;
menu.style.top = tempY;
document.body.appendChild(menu);
}
// Generic script to get cursor coordinates
var IE = document.all?true:false
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var tempX = 0
var tempY = 0
function getMouseXY(e) {
if (IE) {
tempX = event.clientX + document.body.scrollLeft
tempY = event.clientY + document.body.scrollTop
} else {
tempX = e.pageX
tempY = e.pageY
}
if (tempX < 0){tempX = 0}
if (tempY < 0){tempY = 0}
document.Show.MouseX.value = tempX
document.Show.MouseY.value = tempY
return true
}
目的是在光标所在的位置创建一个div元素。它确实创建了一个div元素并设置了
innerHTML
和position: absolute
,但是没有设置left
和top
属性。我创建了一个警报框来检查
tempX
和tempY
的值,它们是整数。有什么想法吗?
最佳答案
left
和top
的样式值需要单位以及值,而不仅仅是数字值,否则浏览器将忽略对其进行设置
尝试:
menu.style.left = tempX + 'px';
menu.style.top = tempY + 'px';
关于javascript - 在DOM上使用JavaScript定位Divs,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28708327/