1

如果我创建一个文本元素并添加一个拖动处理程序,它不会在触摸设备上移动。我可以看到移动事件被触发,但元素没有拖动。如果我创建一个路径元素并附加相同的拖动处理程序,那么路径元素在触摸设备上移动得很好。所有元素在我笔记本电脑上的 Chrome 和 Firefox 上都能正常运行。

为了让文本元素在触摸设备上拖动,我需要做些什么特别的事情吗?

这是我正在做的一个片段。我确实删除了一些不相关的代码,所以它可能看起来有点奇怪。

var word = paper.text(xVal, yVal, "text"]);
word.drag(window.move, window.start, window.up)

window.start = function() {
  this.lastDx = 0;
  this.lastDy = 0;
};

window.move = function(dx, dy) {
  this.transform("...T" + (dx - this.lastDx) + "," + (dy - this.lastDy));
  this.lastDx = dx;
  this.lastDy = dy;
  return this;

};

window.up = function() {
  this.lastDx = 0;
  this.lastDy = 0;
};
4

2 回答 2

0

Raphael 2.1.1 对此问题进行了修复。之前的版本NaN针对dx/dy在触摸设备上报告,因此如果您使用这些设备进行拖动,那么它将无法正常工作。

https://github.com/DmitryBaranovskiy/raphael/issues/328

于 2014-08-27T15:10:21.917 回答
0

经过反复试验,我能够通过创建一个“包裹”文本的矩形来解决这个问题。我在矩形上放置了一个填充,但不透明度为 0,然后将矩形和文本组合在一起,并将设置设置为可拖动的部分。

于 2013-11-10T03:20:25.620 回答