0

私はraphael.jsに慣れようとしています。各州のデフォルトの色がすでにあり、それらの色がそこにとどまっているUSAマップを作成したいと思います。

これが私が思いついたものです。

AKを見ると、デフォルトの色が読み込まれていますが、別の状態を強調表示すると、AKのデフォルトの色が消えます。AK(および他の状態)を同じ色のままにしておきたい。

具体的には、AKフルカラーを何がクリアしているのかわかりません。このステートメントの一部は、別の状態にマウスオーバーしたときに塗りつぶしカバーをクリアすることだと思います。

        for (var state in aus) {
        //aus[state].color = Raphael.getColor();
        (function (st, state) {
            st[0].style.cursor = "pointer";
            st[0].onmouseover = function () {
                current && aus[current].animate({fill: "#333", stroke: "#666"}, 500) && (document.getElementById(current).style.display = "");
                st.animate({fill: st.color, stroke: "#ccc"}, 500);
                st.toFront();
                R.safari();
                document.getElementById(state).style.display = "block";
                current = state;
            };

        })(aus[state], state);
    }

私が間違っているかもしれないアイデアはありますか?

4

3 に答える 3

1

Raphael.jsを使用してからしばらく経ちましたが、これが状態をリセットする行だと思います。

current && aus[current].animate({fill: "#333", stroke: "#666"}, 500) && (document.getElementById(current).style.display = "");

#333をst.colorまたはその状態の色に置き換えてみてください。私の仮定が正しければ、それはaus['AK']???のようなものになります。以前の状態の色をキャプチャする必要がある場合があります。それがうまくいかない場合はお知らせください。詳しく調べることができます。

幸運を。

于 2012-10-22T18:18:28.120 に答える
0

ブライアン・アロは私の問題の一部に触れていますが、最終的に問題を引き起こしているのはアニメーションコードです。私は同じような色相にアニメーション化する方法を理解したことがなく、次のコードを完全に捨てました:st.animate({fill: st.color, stroke: "#ccc"}, 500);

最終結果は、ユーザーが州ごとに独自の大統領選挙予測を作成できるサイトです。 ここにあります。

于 2012-11-03T05:02:59.740 に答える
0

アメリカのSVGをにドロップしてください.. これ

オプションで、生成されたマウスオーバーコードを削除または残すことができます。

于 2012-10-22T20:46:32.103 に答える