• 前端web设定热点区域--通过 SVG


    在一张图片上加热点区域可以通过<map>标签来实现,也可以直接使用导出的 SVG 文件直接完成热点区域的绘制。

    通过<map>标签的方法https:////www.cnblogs.com/liangpi/p/11944052.html

    1、需要先将所需大图标注出可点击区域后,导出为svg文件,嵌入当前html文件中。

    <body oncopy="return false" oncut="return false" onselectstart="return false" oncontextmenu="return false" ondragstart="return false">
        <div class="content">
          <svg id="svgRootDom" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMinYMin meet"  width="5522" height="1376"  viewBox="0,0,5522,1376">
            <defs>
              <style>
               .cls-1, .cls-2 {
                  fill: #ff0101;
                  opacity: 0;
                }
          
                .cls-2 {
                  fill-rule: evenodd;
                }
              </style>
            </defs>
            <image id="背景" width="5522" height="1376" xlink:href="./img/bg.jpg"/>
            <path onclick="clickItem('0000','001')" id="_0-1" data-name="0-1" class="cls-1" d="M0,0H149.732V1376H0V0Z"/>
            <rect onclick="clickItem('s065','000')" id="_1-1" data-name="1-1" class="cls-2" x="306" y="149" width="228" height="228"/>
            。。。更多区域省略
            <path onclick="clickItem('m053','000')" id="_8-6" data-name="8-6" class="cls-1" d="M5153.13,1128.25h188.14v213.72H5153.13V1128.25Z"/>
          </svg>
        </div>
      </body>

    2、添加相应的js控制绘制区域的缩放

    <script type="text/ecmascript">
              window.onload=function(){ 
                var svgRootDom = $("#svgRootDom")[0];
                adjustToFreezeHeight(svgRootDom);
              };
              function adjustToFreezeWidth(rootSvg) {
                var windowWidth = $(window).width();
                var viewBoxVal = rootSvg.getAttribute("viewBox");
                var viewBoxWidth = viewBoxVal.split(",")[2];
                var viewBoxHeight = viewBoxVal.split(",")[3];
                rootSvg.removeAttribute("width");
                rootSvg.removeAttribute("height");
                var setWidth = windowWidth;
                var setHeight = (setWidth * viewBoxHeight) / viewBoxWidth;
                rootSvg.setAttribute("width", setWidth);
                rootSvg.setAttribute("height", setHeight);
              }
              function adjustToNone(rootSvg) {
                var viewBoxVal = rootSvg.getAttribute("viewBox");
                var viewBoxWidth = viewBoxVal.split(",")[2];
                var viewBoxHeight = viewBoxVal.split(",")[3];
                rootSvg.removeAttribute("width");
                rootSvg.removeAttribute("height");
                rootSvg.setAttribute("width", viewBoxWidth);
                rootSvg.setAttribute("height", viewBoxHeight);
              }
              function adjustToFreezeHeight(rootSvg) {
                var windowHeight = $(window).height();
                var viewBoxVal = rootSvg.getAttribute("viewBox");
                var viewBoxWidth = viewBoxVal.split(",")[2];
                var viewBoxHeight = viewBoxVal.split(",")[3];
                rootSvg.removeAttribute("width");
                rootSvg.removeAttribute("height");
                var setHeight = windowHeight;
                var setWidth = (setHeight * viewBoxWidth)/viewBoxHeight;
                rootSvg.setAttribute("width", setWidth);
                rootSvg.setAttribute("height", setHeight);
              }
              function adjustToFreezeAll() {
                var windowHeight = $(window).height();
                var windowWidth = $(window).width();
                rootSvg.removeAttribute("width");
                rootSvg.removeAttribute("height");
                rootSvg.setAttribute("width", windowWidth);
                rootSvg.setAttribute("height", windowHeight);
              }
            </script>

    3、在HTML中,用image引入原图片信息作为背景

    <image id="背景" width="5522" height="1376" xlink:href="./img/bg.jpg"/>

    其中:xlink:href 表示图片路径,可以是svg导出时的base64转码,也可以是引入本地文件。

  • 相关阅读:
    C++链式队列基本操作
    C++链栈基本操作
    C++顺序栈基本操作
    C++链表基本操作
    C/C++/JAVA
    C++操作链表
    How Many Maos Does the Guanxi Worth
    Heavy Transportation
    Frogger
    Til the Cows Come Home(Dijkstra)
  • 原文地址:https://www.cnblogs.com/liangpi/p/11950114.html
Copyright © 2020-2023  润新知