map area 热区自适应的实现代码

map area 热区自适应的实现代码

html:

1
2
3
4
5
6
7
8
9
10
<style>
img{
    display:block;max-width:1920;width: 100%;border: 0;
}  
</style>
<img src="src/1.jpg" usemap="#planetmap"/>
<map name="planetmap" id="planetmap">
    <area shape="rect" coords="0,0,110,200" href="#"/>
    <area shape="rect" coords="50,50,200,200" href="#"/>
</map>

  

 

js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<script>
var initwidth=null,//初始图片宽度
    area=document.getElementsByTagName('area'),
    initarea=null;//初始数据保存
     
function init(){//初始化
    initwidth=1920;
    initarea=new Array(area.length-1);
    for(var i=0;i<area.length;i++){
        initarea[i]=area[i].getAttribute("coords");
    }
}
 
function setCoords(){//根据分辨率自适应热区坐标
    var width=document.body.offsetWidth,
        percent=width/initwidth;
    for(var i=0;i<area.length;i++){
        var coords=initarea[i],
            arr=coords.split(",");
        for(var j=0;j<arr.length;j++){
            arr[j] *= percent;   
        }
        area[i].setAttribute("coords",arr.join(","));
    }
}
//使用
init();
window.onresize = function () { 
    setCoords();
</script>
posted @   狂猫  阅读(354)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示