我刚刚编写了一些代码(并且它有效),用于在鼠标位于 4 个矩形中的任何一个(不同矩形的不同文本)时在鼠标附近显示一些文本。我使用了 html 标签 <map></map>、css 和 jquery。一切正常。当鼠标在图片上移动时,我不喜欢 100% 的 CPU 使用率。
这是一个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%。Opera 吃不到 62%(从不超过 62%)。Chrome 是最好的:平均约为 28%,最高为 42%。
如果它有助于减少所需的资源,则可以将文本重新定位到鼠标附近,而不是每毫秒,而是每 300 毫秒。怎么做?这个问题有什么比使用 mouseenter 代替 mousemove 更好的解决方案吗?mouseenter 的缺点是在调用 mouseleave 之前它不会更新弹出文本的位置。
谢谢你。