zek*_*eke 6 javascript jquery cross-browser raphael
我正在尝试从一个使用Raphael的简单应用程序中调整一些代码,以允许用户在画布上绘制圆形和矩形.(原始代码https://gist.github.com/673186)
原始代码使用旧版本的jQuery并且工作正常.见http://jsfiddle.net/GHZSd/
但是,使用更新版本的jQuery打破了这个例子.见http://jsfiddle.net/GHZSd/1/
原因是在新版本的jQuery中不再定义event.layerX和event.layerY.我的问题是 - 我可以使用什么代码来替换这些值?我只是通过做一些数学尝试了一些事情(event.originalEvent.layerX/layerX现在仍然存在所以我只是想添加/减去一些会导致这些值的东西)但是到目前为止哪一个是有效的浏览器不适用于所有这些.
很抱歉,如果之前已经询问过,但我无法在SO或其他任何地方找到具体答案.
mdd*_*ddw 10
所以,我想了一下这个问题,因为Chrome团队想要删除layerX和layerY,原因很奇怪.
首先,我们需要你的容器的位置:
var position = $paper.offset();
Run Code Online (Sandbox Code Playgroud)
(对于那些没有打开小提琴的人来说,$ paper是svg将被绘制的div)
它给了我们两个COORDS,position.top并且position.left,让我们知道在页面的容器.
然后,点击,我们使用e.pageX和e.pageY,这是页面的坐标.为了模拟layerX和layerY,我们使用(e.pageX - position.left)和(e.pageY - position.top)
Etvoilà:http://jsfiddle.net/GHZSd/30/
适用于chrome,Safari,FF和Opera.