我有一张图像地图,其中包含300-400个多边形区域,在事件" onclick" shoud突出显示该区域并获取一些数据等...当页面加载时(我的图像有点大,3-5MB)所以我使用davidjbradshaw/image-map-resizer插件调整了这些图像映射的大小。当我开始实现高光方法时,一切工作正常,但在放大/缩小图像后,我的聚合线被搞砸了。如果我删除高亮显示选项并放大/缩小,我的多边形线会调整为适当的图像尺寸。
用于调整大小(正常工作)的JS代码
$( document ).ready(function() {
imageMapResize();
});
function ZoomIn () {
$("img").animate({
height: '+=200',
width: '+=200'
}, 1000, function() {
imageMapResize();
});
}
function ZoomOut () {
$("img").animate({
height: '-=200',
width: '-=200'
}, 1000, function() {
imageMapResize();
});
}
用于调整大小/突出显示(无法正常工作)的JS代码
$( document ).ready(function() {
imageMapResize();
$('img[usemap]').maphilight();
});
function ZoomIn () {
$("img").animate({
height: '+=200',
width: '+=200'
}, 1000, function() {
imageMapResize();
$('img[usemap]').maphilight();
});
}
function ZoomOut () {
$("img").animate({
height: '-=200',
width: '-=200'
}, 1000, function() {
imageMapResize();
$('img[usemap]').maphilight();
});
}
没有放大/缩小图像分辨率和高光效果很完美。
放大/缩小后
我做错了什么?
答案 0 :(得分:1)
我做错了什么?
没什么,因为我可以看到代码。
我认为问题在于jQuery.maphilight()
插件本身,它显然不支持响应式缩放,yet。
因此,您可能需要考虑使用jQuery.mapster()
,而不是尝试解决问题/问题,或者等待作者修复问题。
工作示例
$( document ).ready(function() {
$('img[usemap]').mapster({
fill: true,
fillColor: '000000',
fillOpacity: 0.2,
stroke: true,
strokeColor: 'ff0000',
strokeOpacity: 1,
strokeWidth: 1,
fade: true
});
});
function ZoomIn() {
$("img").animate({
height: '+=200',
width: '+=200'
}, 1000, function() {
$(this).mapster('resize', $(this).width(), $(this).height());
});
}
function ZoomOut() {
$("img").animate({
height: '-=200',
width: '-=200'
}, 1000, function() {
$(this).mapster('resize', $(this).width(), $(this).height());
});
}
演示:http://jsfiddle.net/mt5pynn8/
演示:http://jsfiddle.net/mt5pynn8/1/
附加说明
jQuery.mapster()
不支持jQuery版本3 ,其次,该插件最后一次更新于2013年..(但它仍然运行良好。)
<强>更新强>
jQuery.mapster()
附带调整大小功能;因此imageMapResize()
没有必要。但请注意,调整大小功能并非完美,因为我已对其进行了测试。既不imageMapResize()
也不jQuery.mapster()
。