放大/缩小图像映射后,Maphilight()停止正常工作

时间:2018-05-23 10:34:34

标签: javascript jquery imagemap

我有一张图像地图,其中包含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();
    });
  }

没有放大/缩小图像分辨率和高光效果很完美。

initial picture

放大/缩小后

image of missing poly cords

我做错了什么?

1 个答案:

答案 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()