【问题标题】:Raphael transform resets my scale拉斐尔变换重置了我的比例
【发布时间】:2014-09-26 09:45:50
【问题描述】:

我的 onload 中有以下 rapheal javascript

var cmdShapeString = "M 0 0 l 20 0 2 5 10 0 2 -5 100 0 0 30 -100 0 -2 5 -10 0 -2 -5 -20 0z";
var R = Raphael("toolbox");
var path = R.path(cmdShapeString) ;
path.attr({stroke:"#777777", fill: "#CCCCCC"});
path.scale(0.5);    
//path.attr({x:-100, y: 0}); //Has no effect
path.transform("T"+0+","+0); //Resets the scale back to 1.0???

最初在屏幕上绘制路径时,它会在 0,0 处绘制

然后我将它缩放到一半大小,然后它跳到左边。

然后我尝试使用 path.transform 将其重新设置为 0,0,它似乎将比例重置回 1.0。

尝试使用 attr 设置 x 和 y 绝对没有效果。

这里发生了什么?我做错了什么?

【问题讨论】:

  • 在我在相关部分的右侧发布后,出现了这个问题:stackoverflow.com/questions/21140786/… 想知道我现在应该删除这个问题还是保持原样:/
  • 我暂且不说。它确实很好地显示了问题所在。

标签: javascript svg raphael


【解决方案1】:

path.scale(0.5); 实际上是 path.transform('S0.5'); 的简写(或者可能是小写的 s,我没有检查。

因此,一旦您知道,这会覆盖 transform 属性也就不足为奇了...

path.transform("T"+0+","+0); //Resets the scale back to 1.0???

幸运的是,raphael documentation 中有一个解决方法。使用 t 而不是 T

path.transform("t"+0+","+0);

【讨论】:

  • 我试试看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多