画像の異なる領域を強調表示するために灰色/緑色/赤色の影付きブロックを動的に表示する画像があります。すなわち、イメージの小さな部分は、グレー/グリーン/レッドの色合いの間で動的にシフトします。ImageMapsterが画像の選択のクラッシュを動的に表示および非表示にする
私はjQueryのプラグインImageMapsterを使用することにしました: http://www.outsharked.com/imagemapster/
素晴らしいプラグインのようだ、とそれは私が、私はその後、ImageMapsterにcontroll画像のためのイメージマップを設計できます。
私はJavaScriptからすべての選択をコントロールしたいので、選択した領域の色を3色に変更し、ImageMapsterでイメージを更新する必要があります。
私は2つの方法を試みました。
ImageMapster mapOptionsを特定の領域設定に変更し、すべての領域の選択を解除してすべての領域を選択します。各領域についてhttps://jsfiddle.net/koniak/zo04e3ns/
B.、新しい領域オプションを使用して選択解除するには、新たな領域のオプションを使用して選択:
$('#shape1').mapster('set_options',{areas : newArea});
$('area').mapster('deselect');
$('area').mapster('select');
JSFiddle。
$('#shape1').mapster('set',false,value.id, {fillColor: stateOptions[value.state].fillColor});
$('#shape1').mapster('set',true,value.id, {fillColor: stateOptions[value.state].fillColor});
JSFiddle:https://jsfiddle.net/koniak/evwuvnby/
これらの両方のオプションは、iOSのSafariとPCクロームのクラッシュの原因となります。 - 上記のオプションAはSafariでは少し時間がかかりますが、Chromeでは長時間です。 - 上記のオプションBがSafariでクラッシュし、Chromeでしばらくしてからクラッシュします。
jquery.imagemapster.js:2047 Uncaught TypeError: Cannot read property 'width' of null
p.createCanvasFor @ jquery.imagemapster.js:2047
m.Graphics.createVisibleCanvas @ jquery.imagemapster.js:1841
p.refreshSelections @ jquery.imagemapster.js:2062
m.MapData.removeSelectionFinish @ jquery.imagemapster.js:3378
finishSetForMap @ jquery.imagemapster.js:1472
$.mapster.impl.me.set @ jquery.imagemapster.js:1525
$.mapster.impl.me.deselect @ jquery.imagemapster.js:1430
$.fn.mapster @ jquery.imagemapster.js:834updateCycle @ (index):145nter code here
:最初に、Webサーバーからページを取得する場合(「ステップを選択し、」エラーを削除しますが、画像文句を言わないの更新を削除する)
私は、それが関連しています場合、私は知らない次のエラーを取得します
すべてが計画どおりに動作します。
私の質問は次のとおりです: 1. ImageMapsterを使用するのが、更新を強制する最良の方法です(選択を解除して選択する)か、他のオプションがありますか? 2. ImageMapster(または私のコード)のバグの原因は何ですか?
マップの異なる(同時の)ポイントで変更が連続して発生するため、更新間隔ごとに完全なイメージを再描画する必要があります。また、イメージマップを使用する代わりに、領域を処理する独自の方法を設計する必要があります。再描画を取り除く1つの方法は、実際には4つの(!!!)イメージをソースとして、1つは色なしに、もう1つは各領域が陰影付きにすることです。次に、エリアが変わった場合は、正しいソースをキャンバスにコピーするだけです。 しかし、私が本当に欲しいのは、エラーを除いて、ImageMapsterのようにこれを解決するためのプラグインが「ほぼ」あります。 – Koniak