2012-01-20 137 views
9

在Chrome瀏覽器(我在Win 7上使用16.0.912.75 m版本)時,我發現無論設置了什麼光標,只要按住鼠標左鍵並移動光標,則光標類型將更改爲text(即使頁面上沒有任何文本)。鉻錯誤?鼠標向下移動光標+移動

這是一個錯誤?有誰知道如何解決它,因爲它使我的拖放工具看起來有點傻!

的jsfiddle:http://jsfiddle.net/KJfbs/

編輯

正如下面@davgothic回答,加入-webkit-user-select: none;會解決這個問題的時候沒有文字。但是,如果我們確定元素的位置並將文本置於其後面,則問題仍然存在。

的jsfiddle:http://jsfiddle.net/KJfbs/2/

回答

10

嘗試增加-webkit-user-select: none;的CSS爲元素,以防止文本選擇。

例子:http://jsfiddle.net/KJfbs/1/

個人而言,我還要補充這些...

-webkit-user-select: none; 
-khtml-user-select: none; 
    -moz-user-select: none; 
    -ms-user-select: none; 
    -o-user-select: none; 
     user-select: none; 

...跨瀏覽器兼容。

+1

+1 - 感謝,但這工作在我的問題的例子。不幸的是,當div完全位於文本之上時,這似乎不起作用。你有什麼想法,爲什麼這可能是? –

+0

我不太確定,作爲最後一招,你可以對包含文本的元素設置「-webkit-user-select:none;」。用戶將失去選擇文本的能力。 [這是一個例子](http://jsfiddle.net/KJfbs/3/)。 –

+0

是的,我想這是一個選項。謝謝 - 我會等到看到有人能否在我接受你的答案之前就我的編輯提供建議。 –

0

我認爲與-webkit-user-select:none;如果您在頁面中添加其他內容,問題仍然存在。例如:http://jsfiddle.net/KJfbs/237/

無論如何,我認爲jQuery的的preventDefault解決了在任何情況下,問題: http://jsfiddle.net/KJfbs/241/

的preventDefault避免默認行爲是改變光標文字。然後我可以控制並放置任何我想要的遊標:$(this).css(「cursor」,「wait」);

JQUERY:

$(function(){ 
    $('#lime').mousedown(function(e) { 
     e.preventDefault(); 
     $(this).css("cursor","wait"); 
    }).on('mouseup mouseleave', function() { 
     $(this).css("cursor","default"); 
    }); 
}); 

HTML:

<div id="lime"></div> 
<p>Lorem ipsum dolor sit amet</p> 

CSS:

#lime { 
    background-color: lime; 
    height: 100px; width: 300px; 
    cursor: wait; 
    position: absolute; 
    top: 0; left: 0; 
}