zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    [ 字典树题目 ]
    AC Challenge [ ACM-ICPC 2018 南京赛区网络预赛 ] [dfs + 二进制记忆化搜索 ]
    ACM-ICPC 2018 南京赛区网络预赛 J.Sum [ 类打表 ]
    Bzoj 3224.普通平衡树 [ 权值线段树 ]
    IP:网际协议
    网络概述
    HashSet
    idea中git各颜色文件含义
    keytool证书管理
    openssl证书管理
  • 原文地址:https://www.cnblogs.com/sunwk/p/10071424.html
Copyright © 2011-2022 走看看