2013-03-18 17 views
6

Trzymam myszkę na moim elemencie HTML, który zmienia kursor. Teraz, jeśli użytkownik uderzy w klawisz, gdy przycisk myszy jest nadal wciśnięty, przypisuję mu kolejny kursor. Działa to doskonale na Mozilli, która natychmiast zmienia kursor, ale NIE w chrome. W chrome, muszę przesunąć kursor o co najmniej jeden piksel, aby nowy kursor był widoczny. UWAGA: dzieje się tak tylko po naciśnięciu przycisku myszy. Jeśli nie, kursor przełącza się natychmiast zgodnie z potrzebami. Masz pomysł, jak to naprawić?Zmiana kursora CSS nie działa, gdy mysz jest wyłączona

UPDATE: Właśnie okazało się, że wydaje się to być błąd w WebKit: https://bugs.webkit.org/show_bug.cgi?id=53341

Ale tak czy inaczej, każdy pomysł, aby uczynić go jeszcze działa jak nie ma się jeszcze naprawić?

Oto próbka miss-zachowania: JSFiddle Sample z tym kodem:

html:

<div id="test1" style="background:blue;width:200px;height:200px;color:white">Case #1 - cursor not changing for mousedown before moving it (Press mouse - nothing happens. Then hold mouse and move)</div> 

<div id="test2" style="background:red;width:200px;height:200px;color:white">Case #2 - cursor not changing for mousedown before moving it when pressing a key (Press mouse, then click any key - Nothing happens. Then hold mouse and move)</div> 

JS:

var el1 = document.getElementById("test1"); 
var el2 = document.getElementById("test2"); 

el1.addEventListener("mousedown", function() { 
    el1.style.cursor = "move"; 
}); 

document.addEventListener("keydown", function() { 
    el2.style.cursor = "move"; 
}); 
+0

Masz ochotę zrobić skrzypce? –

+0

Pokaż nam swój kod HTML/JS/CSS – Lowkase

+0

Czy próbowałeś tego dokonać, dodając usuwanie klas za pomocą javascript? Również .. dlaczego używasz stylu inline? Pozdrawiam, – Guillermo

Odpowiedz

1

To działa na mnie w chromie bez konieczności porusz myszą:

var el1 = document.getElementById("test1"); 
var el2 = document.getElementById("test2"); 

el1.addEventListener("mousedown", function() { 
    el1.className += ' cursormove'; 
}); 
document.addEventListener("keydown", function() { 
    el1.style.cursor = "pointer"; 
}); 


.cursormove {cursor:move;} 

http://jsfiddle.net/ntdap5hf/4/

Czy mogę coś przeoczyć?

Powiązane problemy