0

アップデート:

こんにちはみんな、これは私が得た距離です:http://jsfiddle.net/vsJMn/(「RaphaelJS australia」の例でテストしています)

私が今理解できない唯一の問題は、別の要素がクリックされたときに要素の状態を 0 に戻す方法です。要素をクリックしたときに「アクティブ/選択済み」状態を取得する方法を考え出しました。ホバーは残りの部分で機能しますが、クリックされた要素は最後の状態でスタックし、ホバーイベントは機能しませんもう取り組まないでください。

これを修正する方法を知っている人はいますか?


古い質問:

これに非常によく似たものを作成したい: http://www.voanews.com/content/olympic-village-map/1446501.html

クリックすると、それぞれがページに異なるテキストを表示するカスタム形状を描画できるようにしたいと考えています (おそらく「div」内)。

そして、リンクの例と同じように、マウスオーバー、クリックなどでインタラクティブなスタイルを追加したいと思います。図形にカーソルを合わせるとアニメーションが表示され、クリックすると選択されたままになり、ホバーアニメーションが別の図形をクリックするまで、他の図形をクリックします。また、テキストのフェード効果。

HTML5 キャンバス、Raphaeljs ( http://raphaeljs.com/australia.html )、およびその他のいくつかの作成方法を検討してきましたが、うまくいかないようです。

あの「オリンピック選手村」はまさに私が必要としているものです。誰か助けてください。


@vlad-otrocol に感謝します。あなたが提案したチュートリアルを調べましたが、とても役に立ちました。必要なものはたくさんありますが、欲しいものはすべて見つかりませんでした。

あなたの例について @kevin-nielsen に感謝します。あなたの方法は、私が RaphaelJS の例の Web サイトで取り組んできた「オーストラリア」の例よりもはるかに簡単です。これは私が得た距離です: http://jsfiddle.net/k2GQj/

私の例をあなたの例と統合し、これを持っています: http://jsfiddle.net/L3bHz/

私がする必要があるのは、要素をクリックして色を変更し、その色の状態を維持しながら、ホバー時に他の要素の色を変更できるようにすることです (「オリンピック ビレッジ マップ」など)。

私の例からわかるように、現時点では、各要素の色を 1 つの色に変更する「mouseout」イベントがあります。各要素に対して「mouseout」イベントを作成する必要がありますか?ホバー後に要素の色を元の状態に戻す方法はありませんか?

また、ケビン、あなたの例では、テキストをどのように配置しますか? 私が取り組んでいる例では、DIV が使用されているため、CSS で配置を変更できます。

助けてくれてありがとう - 私はこれにもっと取り組み、進歩を報告します!

4

2 に答える 2

0

プロジェクトに html キャンバス要素を使用することに決めた場合、私はこれを見てみたいと思います: http://simonsarris.com/blog/510-making-html5-canvas-useful 彼はキャンバスに関する非常に優れた一連のチュートリアルを持っています.

Simon のチュートリアルには、必要なものがほとんどすべて含まれています。ただし、いくつかの重要な要素を覚えておく必要があります。

  1. キャンバス上のすべてのオブジェクトの座標と状態を追跡する必要があります。
  2. キャンバスには、シェイプ/オブジェクト イベントなどはありません。イベントは canvas 要素にのみ追加できます。
  3. 形状イベントの上にマウスが必要な場合は、キャンバスのマウスオーバー イベントが必要です。形状の位置に対するカーソル チェックの座標を取得してから、カーソルが形状上にあるかどうかを判断できます。
  4. キャンバスの一般的なプロセスは次のとおりです。イベントがトリガーされます->新しいキャンバスの状態、オブジェクトの位置、可視性などを再計算します->すべてを再描画します

html5 キャンバス チュートリアルも見てみますhttp://www.html5canvastutorials.com/tutorials/html5-canvas-tutorials-introduction/

于 2012-08-23T15:46:37.283 に答える
0

このような表示の場合、モデルとして使用しているオリンピック ビレッジ マップのように、RaphaelJS を利用した SVG を使用することを支持してキャンバスを使用することに反対します。ホバーとクリックの組み込みイベント処理と永続的な状態情報をすぐに利用でき、数百または数千のオブジェクトで適切なパフォーマンスを維持します。JavaScript に少しでも精通していれば、あなたが説明しているようなマップを非常に簡単に作成できます。Raphael の js が任意の形状のホバリングとクリックを強化することを示す、この小さなフィドルの例を考えてみましょう - わずか数分で記述できました。

作成するマップへのパスはありますか?

于 2012-08-23T16:23:04.707 に答える