Смена генерируемого курсора
Хром 44 стал кешировать значение курсора, не перерисовывая его. Для того, чтобы перерисовка состоялась, нужно менять положение курсора
HTML
<div class="elem"></div>
CSS
.elem {
background-color: #faa;
height: 100px;
width: 100px;
}
JavaScript
var elem = document.querySelector('.elem');
var c = document.createElement('canvas');
var cx = c.getContext('2d');
var d = 0;
c.width = 51;
c.height = 50;
c.pureWidth = 50;
c.pureHeight = 50;
requestAnimationFrame(draw);
var start = null;
function draw(ts) {
elem.style.cursor = getCursor();
if (start===null) start=ts;
var prog=ts-start;
if (prog>1000)
requestAnimationFrame(draw);
};
function getCursor() {
d == 0 ? d = 1 : d = 0;
var x = c.width/2 - d;
var y = c.height/2;
cx.clearRect(0, 0, c.width, c.height);
cx.rect(0 + d, 0, c.pureWidth, c.pureHeight);
cx.fillStyle = getFill();
cx.fill();
return 'url('+ c.toDataURL() +') '+ x +' '+ y +', none';
};
function getFill() {
return 'rgb('+ Math.floor(Math.random()*255) +','+ Math.floor(Math.random()*255) +','+ Math.floor(Math.random()*255) +')';
};