【问题标题】:PathSegList is deprecated and removed in Chrome 48PathSegList 在 Chrome 48 中已被弃用和删除
【发布时间】:2016-05-09 12:36:09
【问题描述】:

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

【问题讨论】:

  • 为什么链接答案之一中提到的 polyfill 对您没有帮助?
  • 好的。现在我在我的应用程序中添加了 poly-data-polyfill.js。但是 SVGPathSeg.PATHSEG_MOVETO_REL 、 createSVGPathSegMovetoAbs 和其他类似常量和 API 的替代品是什么?
  • 我还需要添加 pathSeg.js 吗?
  • 你是什么意思?你读过 polyfill 文档吗?

标签: html google-chrome svg


【解决方案1】:

你不需要 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'));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-24
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2020-10-30
    相关资源
    最近更新 更多