我正在尝试使用HTML5和一些JavaScript制作一个小型的画板。每当我在Chrome中点击画布时,光标就会变成文本光标。我尝试在CSS中添加cursor:hand,但似乎不起作用。这肯定是一件容易的事情,但我查了一下,却找不到解决方法。
我正在尝试使用HTML5和一些JavaScript制作一个小型的画板。每当我在Chrome中点击画布时,光标就会变成文本光标。我尝试在CSS中添加cursor:hand,但似乎不起作用。这肯定是一件容易的事情,但我查了一下,却找不到解决方法。
在画布上使用禁用文本选择。这非常有效。
var canvas = document.getElementById('canvas');
canvas.onselectstart = function () { return false; } // ie
canvas.onmousedown = function () { return false; } // mozilla
祝你好运,
Kris
body { -webkit-user-select: none; }
。 - Jacksonkr虽然其他人对quirksmode参考文献的指引非常准确,但这并不能解决你遇到的问题,实际上你需要实现Kris答案的一个变体。
在我的实现中,我发现防止mousedown事件中的默认行为就足以停止那个讨厌的文本选择光标:
function handleMouseDown(evt) {
evt.preventDefault();
evt.stopPropagation();
// you can change the cursor if you want
// just remember to handle the mouse up and put it back :)
evt.target.style.cursor = 'move';
// rest of code goes here
}
document.addEventListener('mousedown', handleMouseDown, false);
希望能有所帮助。
谢谢, Damon。
<script>
标签需要写成 <script></script>
的形式,不能像 <script />
那样自闭合。还有一个多余的 <body>
标签...只有在它是有效的情况下才能调试奇怪的行为 :) - Nick Craver