• map元素area热区坐标自适应窗口大小


    业务需求:点击图片热区跳转到不同的链接地址,同时要自适应窗口尺寸的变化。

    问题:热区坐标点不会随着窗口调整变化

    解决思路:获取初始的坐标点与图片宽高的比例,然后用比例乘以调整后的窗口宽高,就获得了新的坐标点

    根据初始坐标计算新坐标:

    function adjustPosition(position) {
                // 获取宽高
                var pageWidth = document.body.clientWidth;
                var pageHeight = document.body.clientHeight;
                  // 图片原始尺寸
                var imageWidth = 1423;
                var imageHeigth = 1077;  
                  
                var each = position.split(",");  
     
                for (var i = 0; i < each.length; i++) { 
                    if(i%2==0){
                        // 新的y轴坐标
                        each[i] = Math.round(parseInt(each[i]) * pageHeight / imageHeigth).toString();
                    }else{
                        // 新的x轴坐标
                        each[i] = Math.round(parseInt(each[i]) * pageWidth / imageWidth).toString();
                    }
                }  
                var newPosition = "";  
                for (var j = 0; j < each.length; j++) {  
                    newPosition += each[j];  
                    if (j < each.length - 1) {  
                        newPosition += ",";  
                    }  
                }  
                return newPosition;  
            }

    获取coords属性的坐标值,并用新计算出来的坐标点进行替换:

    function adjust() {  
                var map = document.getElementById("CribMap");  
                var area=map.getElementsByTagName('area');  
     
                for (var i = 0; i < area.length; i++) {  
                    var oldCoords = area[i].getAttribute("coords");  
                    var newcoords = adjustPosition(oldCoords);  
                    area[i].setAttribute("coords", newcoords);  
                }   
            }  


    运行:adjust(); 


    原文:https://blog.csdn.net/sinat_37881704/article/details/80914194 

  • 相关阅读:
    GitHub访问不了怎么办?——改hosts
    使用Docker运行MySQL8.0.28镜像
    重学前端(4) 浏览器是如何工作的(1)
    重学前端(3) JavaScript类型
    Django程序在Linux上的部署
    drf(三)—权限控制
    drf(二)——认证
    django 模板与定制admin
    drf(一)—restful规范
    drf 前戏—CBV的使用及源码流程
  • 原文地址:https://www.cnblogs.com/sunwk/p/10071424.html
Copyright © 2020-2023  润新知