html的map自适应

Map常识

请自己看吧:http://www.w3school.com.cn/tags/tag_map.asp

 

Map自适应

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
            html,body{padding: 0; margin: 0;}
        </style>
    </head>
    <body>
        <img src="img/img.jpg" border="0" usemap="#planetmap" alt="Planets"  width="100%"/>
        <map name="planetmap" id="planetmap">
            <area shape="rect" coords="130,40,136,60"   id="eye"  href ="#" alt="eye" />
        </map>
        <script type="text/javascript" src="js/jquery-2.1.4.min.js" ></script>
        <script>
            $("#eye").click(function(){
                alert("眼睛");
            })
            
            //重新定位map位置
            function rsz(){
                //正常情况下为386尺寸:计算比例
                var bl=$("body").innerWidth()/386;
                var x1=bl*130;
                var y1=bl*40;
                var x2=bl*136;
                var y2=bl*60;
                
                //重新计算位置
                $("#eye").attr({"coords":x1+","+y1+","+x2+","+y2})
            }
            
            //窗口宽度改变时执行
            $(window).resize(function() {
                rsz();
            });
            
            //页面初始化时候执行
            $(function(){
                rsz();
            })
        </script>
    </body>
</html>

 

转载于:https://www.cnblogs.com/dshvv/p/5746117.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现HTML热区map坐标随图片大小自适应,可以通过以下步骤: 1. 在HTML中,为图片设置一个容器div,并将图片作为div的背景图。设置该div的宽度和高度,以及background-size为contain或cover,使图片大小自适应容器。 2. 使用JavaScript获取图片的实际宽度和高度,计算出图片缩放比例。 3. 遍历所有热区的坐标,将坐标乘以缩放比例,以适应图片缩放后的大小。 以下是示例代码: HTML部分: ```html <div id="image-container"> <img src="image.jpg" alt="" id="image" /> <map name="hotspots"> <area shape="rect" coords="10,10,50,50" href="#" /> <area shape="rect" coords="60,60,100,100" href="#" /> </map> </div> ``` JavaScript部分: ```javascript const container = document.getElementById('image-container'); const image = document.getElementById('image'); const map = document.getElementsByName('hotspots')[0]; // 获取图片实际尺寸 const imgWidth = image.naturalWidth; const imgHeight = image.naturalHeight; // 计算缩放比例 const scaleX = container.offsetWidth / imgWidth; const scaleY = container.offsetHeight / imgHeight; const scale = Math.min(scaleX, scaleY); // 遍历所有热区坐标,乘以缩放比例 const coords = map.getElementsByTagName('area'); for (let i = 0; i < coords.length; i++) { const coord = coords[i].getAttribute('coords').split(','); for (let j = 0; j < coord.length; j++) { coord[j] = Math.round(coord[j] * scale); } coords[i].setAttribute('coords', coord.join(',')); } ``` 以上代码会根据图片实际大小和容器大小计算出缩放比例,然后遍历所有热区坐标,将坐标乘以缩放比例调整大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值