当我单击画布并拖动鼠标时,光标将变为文本选择光标.我该如何防止这种情况发生

When I click on a canvas and drag my mouse, the cursor changes to a text-selection cursor. How can I prevent this?

本文关键字:光标 选择 文本 何防止 情况 单击 拖动 鼠标      更新时间:2023-09-26

这是一把小提琴:http://jsfiddle.net/MZ9Xm/

注意:以下内容出现在Chrome 22.0.1221.1中,但不出现在Firefox 14.0.1中。〔Ubuntu linux〕

将鼠标移动到顶部画布,然后按住鼠标按钮。拖动鼠标,光标将变为文本选择鼠标光标(I-bar)。如果页面上没有其他元素,则不会发生这种情况。

我把用户选择设置为无,但运气不好。

您可以在画布中绑定mousedown事件以防止默认行为。

类似于:

// with jQuery
$( "#canvasId" ).mousedown(function(event){
    event.preventDefault();
});
// without jQuery
document.getElementById( "canvasId" ).onmousedown = function(event){
    event.preventDefault();
};

这是最新的小提琴:http://jsfiddle.net/MZ9Xm/1/

你需要测试一下,看看你所做的是否有副作用。

您尝试过使用CSS cursor属性吗?

canvas {
    cursor: pointer;
}

它应该显示默认光标。

试试这个:

var canvasEls = document.getElementsByTagName('canvas'),
    preventHl = function () { return false; },
    i = 0;
while (i < canvasEls.length) {
    canvasEls[i].onmousedown = preventHl;
    i += 1;
}

返回false将防止出现突出显示等默认操作。