svg all in one
2024-10-12 10:51:27
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 发布文章使用:只允许注册用户才可以访问!
最新文章
- [恶趣味]搞了下局域网内的arp网络欺骗
- git pull request
- 进程间通信--pipe
- POJ3321Apple Tree[树转序列 BIT]
- iOS10-- snapshotViewAfterScreenUpdates 失效
- PB中无法插入ole控件,解决办法
- canvas基础2--绘制图形
- 【成都GamEver游戏公司诚邀服务器伙伴】【7~15k一年4次项目奖金】
- javascript基础学习(十)
- STL--G - For Fans of Statistics(两个推断条件-二分)
- [置顶] iframe使用总结(实战)
- elf 学习
- Mysql的时间类型问题
- C# 使用委托实现多线程调用窗体的四种方式
- 【转】AD转换中常用的十种数字滤波法
- [C++]返回最值元素
- 纸质文稿如何生成PDF
- jqGrid-基础篇
- c#的yield return
- 【POJ3667】Hotel(线段树)