マウスが4つの矩形のいずれかにあるときに、いくつかのコードを書きました(そして動作します)。私はhtmlタグ< map> </map>、cssとjqueryを使いました。すべてうまく動作します。マウスが画像上を移動しているとき、私は100%CPU使用量が嫌いです。jQuery Mousemoveと性能に関する質問
これはjqueryの一部です:
$('area').each(function(){
var area = $(this),
alt = area.attr('alt');
area.mousemove(function(event){
var tPosX = event.pageX +10;
var tPosY = event.pageY - 85;
$('#rectangletext').css({top: tPosY, left: tPosX});
$('#rectangletext').html(alt);
}).mouseleave(function(){
$('#rectangletext').html('');
});
});
私は(同時に、同じコンピュータ上)IE、FF、ChromeとOperaでそれをテストしてみました。 Area.mousemoveは、マウスを動かすと最大100%のCPUを消費します。問題は、マウスをその地図上に動かすときに必要となるリソースを減らす方法です。 IEは最悪です - CPU使用率は100%までジャンプします。 FFは約67%-100%を食べる。オペラは62%未満しか食べない(決して62%以上)。クロムが最高です:平均は約28%、最大は42%です。
ミリ秒単位ではなく、必要なリソースを減らすのに役立つ場合は、300ミリ秒ごとにマウスの近くにテキストを配置しても問題ありません。どうやってするか? mousemoveの代わりにmouseenterを使用するよりも、この問題の解決策はありますか? mouseenterの問題は、mouseleaveが呼び出されるまでポップアップテキストの位置を更新しないことです。
ありがとうございます。
正常に動作します、ありがとうございます。唯一の問題はprevDate(任意の小数)の値を設定する必要があります。なぜなら、(date-prevDate> 300)という値を持たない宣言したprevDateは常にfalseなので何も表示されないからです。ありがとうございました! BTWでは、100のIEは100%のCPUを使用していますが、200msのCPUは約80%のCPUを使用し、300msのCPUは約68%、400msのCPUは約60%のCPUを使用します。ありがとうございました。 – Haradzieniec