分配 SVG 根元素的当前比例时出错
Error when assigning currentScale of SVG root element
我对SVG和JavaScript有问题:
此代码的行为符合预期:
function initSvg(width) {
SVGRoot = document.getElementsByTagName('svg')[0];
console.log(SVGRoot.currentScale); // Displays '1' which is OK
但是当我尝试像这样重新分配当前缩放参数时:
function initSvg(width) {
SVGRoot = document.getElementsByTagName('svg')[0];
SVGRoot.currentScale = parseFloat(width)/400;
console.log(SVGRoot.currentScale); // Should display some floating point number
我收到错误
Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) nsIDOMSVGSVGElement.currentScale]
并且不会执行警报。我分配到SVGRoot.currentScale有什么问题?
更新:
使用时错误消失
SVGRoot.setAttribute('currentScale', parseFloat(width)/400);
或
SVGRoot.setAttributeNS(null, 'currentScale', parseFloat(width)/400);
但当前刻度的实际值不会改变。无论传递到setAttribute的内容如何,它都保持在1。
setAttribute(NS) 的方式不正确,SVG 中没有 'currentScale' 属性。
"currentScale"是SVGSVGElement接口中的一个属性,只要数字合理(例如不是Inf或NaN),你应该能够像你一样获取和设置它。但请注意,SVG 1.1 规范仅定义了 currentScale 在最外层的 svg 元素上的行为。
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何使用javascript从主svg对象动态创建svg视图框
- javascript中的数组出错
- 如何更改<svg>标记为<img>用js标记
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 锚点元素不't使用svg时,请打开EDGE上的href
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 使用onclick绘制SVG路径
- 在Meteor项目中安装并包含npm模块后出错
- 解析JSON并从中删除对象会出错
- SVG/JavaScript:尝试选择和更改多边形点
- AngularJS指令出错-无法读取属性'编译'的未定义
- 顺时针旋转Svg元件
- 禁用SVG拖动
- Firefox使用drawImage将SVG图像渲染到HTML5画布时出错
- 绘制 SVG 拉斐尔路径会出错并且不接受变量
- 分配 SVG 根元素的当前比例时出错
- 使用css和javascript调整svg动画时出错
- IE11投掷'未找到成员'处理SVG时出错
- 提供svg v1路径参数d时出错