【问题标题】:Raphaël: edit the style of a set of paths grouped togetherRaphaël:编辑组合在一起的一组路径的样式
【发布时间】:2018-06-27 12:00:14
【问题描述】:

我正在使用 Raphaël 制作动态地图。我有各种路径(假设每个国家/地区都有一条路径),并且我使用的脚本类似于此页面中的演示: http://dmitrybaranovskiy.github.io/raphael/australia.html,为了动态改变光标、颜色和标注 div 的可见性。

但是,有些国家是由不同的路径组成的,我需要将它们分组在一个标签下(因为否则会与标签发生冲突,并不是所有的路径都会受到影响)。我使用集合将它们合并到一个路径中:

var group1 = R.set();
group1.push(path1);
group1.push(path2);
group1.attr({fill: 'red'});

并且路径绘制正确,颜色正确;但是,当我尝试编辑合并路径的样式时,例如使用以下命令:

st[0].style.cursor = "pointer";

我收到以下错误

st[0].style is undefined

虽然直接使用路径而不是集合时效果很好......

如何编辑分组路径的样式?

【问题讨论】:

    标签: javascript html svg raphael


    【解决方案1】:

    Raphaël 实例没有style 方法,也许您正在使用该节点。这应该可以...

    st[0].node.style.cursor = "pointer";
    

    虽然 raphael 这样做的方式是:

    st[0].attr("cursor", "pointer");
    

    【讨论】:

    • 我无法让它以这种方式工作......有没有办法在一个 R.path 下直接绘制两条单独的路径?我尝试在一行中合并,例如:R.path(m 458,433 ...... 0.91,0.55 z m 478,460 ..... 0.25, -0.51 z); 但那不起作用...
    • 啊,我明白了,尝试将第二个m 重命名为大写M,然后告诉我怎么回事。
    • 这就是我将第二个m 重命名为M 的结果(我也尝试将第二个z 改为Z,结果相同):oi68.tinypic.com/aky6fa.jpg
    • 保留小写的 m,似乎第二条路径被忽略了...可能语法有问题,或者有其他方法可以实现。
    • 我明白了!!!使用绝对参考系统是行不通的,因为第一个子路径是使用相对参考系统绘制的。解决方案移动了两个起点之间的差异:(m 478,460) - (m 458,433) ----->第二条路径必须以m 20, 27而不是m 478,460开始。
    猜你喜欢
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    相关资源
    最近更新 更多