svg - 有没有办法减少跟随鼠标指针的指南的滞后?

标签 svg d3.js

我的 svg 上有一条跟随鼠标指针的垂直指南,但现在更新其位置有点慢,这在鼠标快速移动时尤其明显。有没有办法减少这种滞后?

当前代码:

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();
});

最佳答案

您在每次鼠标移动时选择该行,而是将该行保留在变量中:

var line = svg.append("line")
        .attr("class", "guideline")
        .attr("y1", margin[0])
        .attr("y2", height+margin[0])
        .attr("opacity", 0)
        .attr("stroke", "#333")
        .attr("pointer-events", "none");

svg.on("mousemove", function(d) {

    line
        .attr("x1", d3.event.pageX-1)
        .attr("x2", d3.event.pageY-1);

});

svg.on("mouseover", function(d) {
  line.attr("opacity", originOpacity);
});

svg.on("mouseout", function(d) {
    line.attr("opacity", 0);
});

关于svg - 有没有办法减少跟随鼠标指针的指南的滞后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828006/

相关文章:

jquery - 使用 svg 内的链接平滑滚动或缩放文本,我应该尝试什么?

d3.js - 如何获得 D3 中的比例类型?

javascript - 沿 d3 中的路径拖动

javascript - 围绕曲线弯曲 SVG `<g>`

javascript - SVG路径上的动画图像

javascript - Svg 元素在容器外时隐藏

javascript - D3 Firefox 问题显示图表不正确 - 根本不显示任何 SVG

javascript - D3 可以改变投影

d3.js - 假设没有数据的日期值为 0(C3js 时间序列图)

json - 使用 d3js 排序