Javascript 在div上使用onmousemove时光标出现问题

Javascript 在div上使用onmousemove时光标出现问题,javascript,html,css,cursor,Javascript,Html,Css,Cursor,我想在一个普通的div中创建一种绘图,没有画布!。我正在使用onmousemove事件来跟踪鼠标的位置。以下代码演示了我当前的情况: CSS规则: #outer { width: 400px; border: 1px solid #000000; } #inner { width: 100%; height: 20px; background: green; } 实际JavaScript/HTML部分: 预期结果和实际结果是什么 单击内部div并在按住鼠标按钮的同时移动鼠标时,光标应

我想在一个普通的div中创建一种绘图,没有画布!。我正在使用onmousemove事件来跟踪鼠标的位置。以下代码演示了我当前的情况:

CSS规则:

#outer { width: 400px; border: 1px solid #000000; } #inner { width: 100%; height: 20px; background: green; } 实际JavaScript/HTML部分:

预期结果和实际结果是什么

单击内部div并在按住鼠标按钮的同时移动鼠标时,光标应始终处于十字线位置。这同样适用于IE9RC,部分适用于Firefox 3.6-在Firefox中,这仅在加载站点并首次单击内部div时有效。当释放按钮并再次单击和移动时,将显示不允许的光标,CSS光标属性完全无效。在Google Chrome上,光标甚至没有改变,而是不断地在那里输入光标


我有哪些选择?欢迎提供任何建议。

我唯一能帮助您的是关于Chrome:set-onselectstart=return-false:。

我唯一能帮助您的是关于Chrome:set-onselectstart=return-false:。

谢谢!这让它为Chrome工作。现在,只有Firefox不工作了。from@grange无法发表评论:当我试图更改画布元素上的光标时,除了上面提到的add onselectstart之外,我还需要在onmousedown处理程序的末尾返回false。除此之外,在Chrome中光标仍会变为“选择”。@Pontomedon:Chrome在此期间有了一些改进-webkit用户选择立即救援:。谢谢!这让它为Chrome工作。现在,只有Firefox不工作了。from@grange无法发表评论:当我试图更改画布元素上的光标时,除了上面提到的add onselectstart之外,我还需要在onmousedown处理程序的末尾返回false。除此之外,在Chrome中光标仍会变为“选择”。@Pontomedon:Chrome在此期间有了一些改进-webkit用户选择立即救援:。
    var is_drawing = false;

    function startdraw() {
        is_drawing = true;

        var div = document.getElementById("inner");
        div.setAttribute("style", "cursor: crosshair");
    }

    function stopdraw() {
        is_drawing = false;

        var div = document.getElementById("inner");
        div.setAttribute("style", "cursor: auto");
    }

    function dodraw(e) {
        if (!e) {
            e = window.event;
        } else if (!is_drawing) {
            return;
        }

        // Some more code to be added later
        var deb = document.getElementById("deb");
        deb.innerHTML = "coords -- x(" + String(e.clientX) + ") y(" + String(e.clientY) + ")";
    }
</script>

<div id="outer">
    <div id="inner" onmousedown="startdraw()" onmouseup="stopdraw()" onmousemove="dodraw(event)"></div>
</div>