Tengo una guía vertical en mi svg que sigue al puntero del mouse, pero ahora es un poco lenta para actualizar su posición, algo que es especialmente notable con los movimientos rápidos del mouse. ¿Hay alguna manera de reducir este retraso?¿Hay alguna manera de reducir el retraso de una guía que sigue al puntero del mouse?
código actual:
svg.on("mousemove", function(d) {
svg.select(".guideline")
.attr("x1", d3.mouse(this)[0]-1)
.attr("x2", d3.mouse(this)[0]-1);
});
svg.on("mouseover", function(d) {
svg.append("line")
.attr("class", "guideline")
.attr("y1", margin[0])
.attr("y2", height+margin[0])
.attr("opacity", originOpacity)
.attr("stroke", "#333")
.attr("pointer-events", "none");
});
svg.on("mouseout", function(d) {
svg.select(".guideline").remove();
});
Esto ayudó a reducir algunos retrasos, gracias por eso, pero esperaba que hubiera una manera de reducirlo aún más, ya que todavía hay un retraso muy obvio al mover el puntero del mouse. –
'd3.event.pageX' y' .pageY' pueden ser más rápidos, he actualizado la respuesta.Más allá de eso, me temo que ya has optimizado todo lo que pudiste, siempre habrá un ligero retraso detrás del mouse. – Duopixel
No creo que sea el 'select' el que está causando el problema con el rendimiento, creo que son las rápidas modificaciones al DOM que el navegador no puede seguir. – Wex