0

我有一个仪表指针,我需要在最后添加一个箭头,我能够做到,唯一的问题不是一个集合,当指针旋转时,我的箭头没有跟随它的位置任何想法我知道这是一个新手问题。

这是脚本

    $(function(){
        var r = Raphael("gauge", 200, 200);
        var g = r.gauge(0, 180);

        g.bg(r.circle(100, 100, 100).attr({fill:'','stroke-width': '0'}), [100, 100]);

        g.pointer(r.rect(0, 0, 90, 8).attr({fill: '#fff', 'stroke-width': '0'}), [90, 4]);

        g.arrow(r.path('M 15,20 0,10 15,0 z').attr({fill: '#fff', 'stroke-width': '0'}).translate(0, 90), [0, 20]);



        setInterval(function(){
            var percent = Math.floor(Math.random()*100);
            g.move(percent);
        }, 3000);
    });

你可以在这里预览它http://jsfiddle.net/creativestudio/VH3fR/10/

4

1 回答 1

3

请参阅工作小提琴(快速修复):http: //jsfiddle.net/VH3fR/13/

我不知道这是否是最好的解决方案,我所做的不是创建路径并翻译它,而是直接在所需位置创建了路径。

该行为的原因是,如果您查看该move方法的源代码,它采用指针并应用 transform 方法在指针上进行旋转,这会覆盖您调用的 translate 方法。

替代解决方案

http://jsfiddle.net/VH3fR/14/

在这里,我删除了矩形并使用路径直接构建了一个箭头。

于 2012-09-28T09:13:43.780 回答