zoukankan      html  css  js  c++  java
  • xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

    svg all in one

    show svg in html methods

    https://vecta.io/blog/best-way-to-embed-svg

    https://css-tricks.com/using-svg/

    https://www.sitepoint.com/add-svg-to-web-page/


    svg polygon to path

    
    "use strict";
    
    /**
     *
     * @author xgqfrms
     * @license MIT
     * @copyright xgqfrms
     * @created 2020-01-07
     *
     * @description
     * @augments
     * @example
     * @link
     *
     */
    
    const log = console.log;
    
    
    function convertPolyToPath1(poly){
      var path = document.createElementNS(poly.ownerSVGElement.namespaceURI,'path');
      var points = poly.getAttribute('points').split(/s+|,/);
      let x0 = points.shift(), 
          y0 = points.shift();
      var pathdata = 'M'+x0+','+y0+'L'+points.join(' ');
      if (poly.tagName=='polygon') pathdata+='z';
      path.setAttribute('d',pathdata);
      return path;
    }
    
    function convertPolyToPath2(poly){
      var path = document.createElementNS(poly.ownerSVGElement.namespaceURI,'path');
      var segs = path.pathSegList;
      var pts  = poly.points;
      for (var i=0,len=pts.numberOfItems;i<len;++i){
        var pt = pts.getItem(i);
        var func = i==0 ? 'createSVGPathSegMovetoAbs' : 'createSVGPathSegLinetoAbs';
        segs.appendItem(path[func](pt.x,pt.y))
      }
      if (poly.tagName=='polygon') segs.appendItem(path.createSVGPathSegClosePath());
      return path;
    }
    
    
    
    window.addEventListener(`DOMContentLoaded`, () => {
      log(`DOM ready`);
      Array.prototype.forEach.call(document.querySelectorAll('polygon,polyline'),function(poly){
        var path1 = convertPolyToPath1(poly);
        path1.setAttribute('class','cloned1');
        path1.setAttribute('transform','translate(0,3)');
        poly.parentNode.appendChild(path1);
        var path2 = convertPolyToPath2(poly);
        path2.setAttribute('class','cloned2');
        path2.setAttribute('transform','translate(0,6)');
        poly.parentNode.appendChild(path2);
      });
    });
    
    
    


    Flag Counter

    ©xgqfrms 2012-2020

    www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


  • 相关阅读:
    String内置方法
    【练习题】三级城市选择
    【练习题】购物车练习
    【练习题】计算还能活多少年
    【练习题】猜年龄
    【练习题】比大小
    【练习题】打印长方形
    【练习题】格式化打印
    【练习题】奇数偶数打印
    Ansible配置管理工具
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/12160378.html
Copyright © 2011-2022 走看看