代码之家  ›  专栏  ›  技术社区  ›  MrD

在DOM上使用Javascript定位Divs

  •  0
  • MrD  · 技术社区  · 11 年前

    我有以下代码:

    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 ,这些是整数。

    有什么想法吗?

    1 回复  |  直到 11 年前
        1
  •  1
  •   charlietfl    11 年前

    的样式值 left 和 top 需要单位和值,而不仅仅是数值,否则浏览器将忽略设置它们

    尝试:

    menu.style.left = tempX + 'px';
    menu.style.top = tempY + 'px';