Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在手机/平板电脑上使用mousedown、mousemove和mouseup制作我的web应用程序?_Javascript_Html_Html5 Canvas_Touch_Mouseevent - Fatal编程技术网

Javascript 如何在手机/平板电脑上使用mousedown、mousemove和mouseup制作我的web应用程序?

Javascript 如何在手机/平板电脑上使用mousedown、mousemove和mouseup制作我的web应用程序?,javascript,html,html5-canvas,touch,mouseevent,Javascript,Html,Html5 Canvas,Touch,Mouseevent,我已经写了一个开源的数学应用程序来绘制分形图像。它位于我的个人网站:。如果单击此链接,请注意IE中的Javascript性能非常糟糕(即使是撰写本文时的最新版本) 正如您所知,分形图像包含无限的细节,我的应用程序的一个特点是,您可以用鼠标选择图像的一个区域并放大它(直到您达到64位浮点计算的极限) 分形图像显示在HTML5画布元素上。第二个画布元素覆盖在标记选定区域的图像顶部。(这允许在不重新绘制图像的情况下更改选定区域) 鼠标选择的代码很简单:应用程序只侦听mousedown、mousemov

我已经写了一个开源的数学应用程序来绘制分形图像。它位于我的个人网站:。如果单击此链接,请注意IE中的Javascript性能非常糟糕(即使是撰写本文时的最新版本)

正如您所知,分形图像包含无限的细节,我的应用程序的一个特点是,您可以用鼠标选择图像的一个区域并放大它(直到您达到64位浮点计算的极限)

分形图像显示在HTML5画布元素上。第二个画布元素覆盖在标记选定区域的图像顶部。(这允许在不重新绘制图像的情况下更改选定区域)

鼠标选择的代码很简单:应用程序只侦听mousedown、mousemove和mouseup事件。当mousedown被激发时,将设置一个变量,指示鼠标按钮已按下。当启动mousemove并按下鼠标按钮时,将在选择画布上绘制一个正方形,以指示当用户释放按钮时将选择哪个区域。最后,当mouseup被激发时,应用程序记录鼠标按钮被按下和释放的位置。如果用户对结果选择满意,他可以放大它


我对StackOverflow的问题是:“我如何在触摸屏系统上提供这样的功能,如iPhone、iPad、Android和Windows 8?”

您可以使用Jquery Mobile或其他javascript Mobile framework

如果您不反对使用,您可以使用、和事件。我自己还没有使用过它们,但看起来使用这些抽象概念可以消除触摸和鼠标点击之间的差异。因此,您可能只需要修改事件处理程序,而不需要编写新的事件处理程序


如果您真的希望避免使用JQuery mobile,您可以查看JQuery mobile抽象出来的内容。

您看过触摸事件吗@游戏炼金术士,关于这类事情的信息太多了,很难说从哪里开始。存在原始事件、处理它们的各种库以及浏览器不一致。我发现,在这样一个网站上提问,往往可以获得一个指向正确方向的指针,从而节省大量时间和挫折感。我理解你的意图。然而,在你的帖子中还不清楚为什么你不更新你的代码来使用touchStart/Move/End而不是MouseDown/Up/Move。堆栈溢出与软件推荐无关,否则问题将被标记为“过于宽泛”或基于观点。事实上,你的意见可能和答案一样多。。。当您对lib或编写的代码有问题时,这个问题更适合于堆栈溢出。祝你的应用程序好运。我听说jQuery和jQuery mobile已经合并到一个项目中了吗?我想是jQuery UI和jQuery mobile合并了。所以,如果我已经将最新的jQuery UI添加到我的应用程序中,我不需要更多的库来使用vmouse*事件。你应该测试以确保,但是是的。上面说他们在这里合并了: