PathSegList在Chrome 48中被弃用并删除

kpbwa7wx  于 2023-06-19  发布在  Go
关注(0)|答案(1)|浏览(159)

在Chrome 48中,PathSegList被删除。正如我在另一个问题 Alternative for deprecated SVG pathSegList 的答案中所读到的,Chrome提供了一个新的API,但我猜这个新的API还没有可用。什么是另一种选择,以及如何使用它。我知道这是重复的,但我提到的链接是没有帮助我。

xmakbtuz

xmakbtuz1#

不需要path seg polyfill(pathSeg.js)。
使用path data polyfill,可以将路径数据编辑为通用数组对象。
使用path data polyfill处理新API。推荐。

var path = document.querySelector('path'); //your <path> element
//Be sure you have added the pathdata polyfill to your page before use getPathData
var pathdata = path.getPathData();
console.log(pathdata);
/*
  you will get an Array object contains all path data details
  like this:
    [
        { "type": "M", "values": [ 50, 50 ] },
        { "type": "L", "values": [ 200, 200 ] }
    ]
*/

//replacement for createSVGPathSegMovetoRel and appendItem
pathdata.push({ type: 'm', values: [200, 100] });
path.setPathData(pathdata);

//replacement for createSVGPathSegMovetoAbs and appendItem
pathdata.push({ type: 'M', values: [300, 120] });
path.setPathData(pathdata);

//replacement for createSVGPathSegLinetoAbs and appendItem
pathdata.push({ type: 'L', values: [400, 120] });
path.setPathData(pathdata);

console.log(path.getAttribute('d'));

//create a new path data array
var pathdata = [
    { "type": "M", "values": [50, 50] },
    { "type": "L", "values": [200, 200] }
];
path.setPathData(pathdata);
console.log(path.getAttribute('d'));

相关问题