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);
});
});



xgqfrms 2012-2020

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


最新文章

  1. [恶趣味]搞了下局域网内的arp网络欺骗
  2. git pull request
  3. 进程间通信--pipe
  4. POJ3321Apple Tree[树转序列 BIT]
  5. iOS10-- snapshotViewAfterScreenUpdates 失效
  6. PB中无法插入ole控件,解决办法
  7. canvas基础2--绘制图形
  8. 【成都GamEver游戏公司诚邀服务器伙伴】【7~15k一年4次项目奖金】
  9. javascript基础学习(十)
  10. STL--G - For Fans of Statistics(两个推断条件-二分)
  11. [置顶] iframe使用总结(实战)
  12. elf 学习
  13. Mysql的时间类型问题
  14. C# 使用委托实现多线程调用窗体的四种方式
  15. 【转】AD转换中常用的十种数字滤波法
  16. [C++]返回最值元素
  17. 纸质文稿如何生成PDF
  18. jqGrid-基础篇
  19. c#的yield return
  20. 【POJ3667】Hotel(线段树)

热门文章

  1. 【Coredump】调试之旅
  2. .Net框架的概念和运行原理
  3. cogs 2566 字符串最大值
  4. Spring Boot中进行Junit测试
  5. 分布式缓存 — kafka
  6. XCTF-你是谁
  7. navicat连接阿里云mysql数据库服务器遇到的1130等相关问题
  8. 误删eth1或者 eth0
  9. Cisco动态路由(rip)
  10. Java程序操作HBase