1
  1. 我有很多由 raphael js 绘制的文本元素,并且我为它们添加了拖放可能性(整个 raphael 论文),它们中的大多数都被完美地拖动了,但是有一些文本元素朝错误的方向移动我没有'不知道为什么?

    在这个jsfiddle中我只画了3个文本元素的例子,我注意到在错误方向移动的文本元素在矩阵中有“-1”,比如“0 0.9407 -1 0 473.4541 293.4927”,这些矩阵值是由 Illustrator 提供(将 ai 导出为 svg)

    http://jsfiddle.net/xperali/g6Xav/

  2. 我还希望无法选择文本元素,我尝试使用event.preventDefault();取消鼠标事件,如“onmouseover”和“onmouseout”和“onclick”,但没有任何成功

    我用谷歌搜索了这个问题,我没有找到任何东西,有什么建议吗?

解决方案:
最后,我使用了启用平移和缩放功能的 raphael-pan-zoom 插件,效果很好!

4

2 回答 2

1

拉斐尔问题似乎比你的第二个问题更具挑战性,这是我将要解决的问题。您可以使用一点 css 和一个属性(对于 IE10 和 Opera)使这些不可选择。

text { /* Use a more applicable selector here - text is potentially too generic */
   -khtml-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    -moz-user-select: -moz-none;
    user-select: none;
    /*cursor:pointer;*/
}

小提琴

这解决了大部分问题,但是对于 Opera 和 IE10,您需要能够在元素上设置其他属性,即 unselectable="on"。如果在元素的声明中找不到方法,您可以通过 javascript 进行设置。

m:'0.9407 0 0 1 473.4541 293.4927'我确实通过使用 m: 奇数的值将其更改为from来获得方向性的东西m:'0 0.9407 -1 0 473.4541 293.4927'

但是,我意识到您将标签垂直放置是有原因的,这是我无法工作的部分。一旦您使该标签垂直,它就会翻转拖动的方向轴。这是因为您正在有效地旋转形状本身,并且在被拖动时它似乎保留了自己的方向感。

如果您有兴趣,这里有一个小提琴,我将标签转回正常方向,它的工作原理和其他的一样。

于 2013-06-19T11:00:26.067 回答
0

最后,我使用了启用平移和缩放功能的 raphael-pan-zoom 插件,它工作正常!感谢 JonVD 的回答,但我有很多与这个问题有关的文本元素,我不能每次都随机更改 m 值。

非常感谢您的努力,无论如何,您解决了第二个问题

于 2013-06-19T15:56:49.260 回答