gpt4 book ai didi

html - iOS/Mobile Safari 是否支持 HTML 图像映射中的触摸事件

转载 作者:太空狗 更新时间:2023-10-29 14:55:54 24 4
gpt4 key购买 nike

谁能明确地告诉我 html 图像映射是否支持 Mobile Safari 中的触摸事件?我需要使用图像映射,因为我有不规则形状的可点击区域。我的测试表明支持鼠标事件(但方式有限)并且似乎根本不会触发触摸事件。

我做了这个最简单的测试:

http://jsfiddle.net/DsRhu/6/

<img id="polygon_images" src="http://s18.postimg.org/7xvo1f9tl/polygons.png" alt="Polygons" border="0" usemap="#my_polygons" />

<map id="my_polygons" name="my_polygons">
<area shape="poly" alt="blue" title="Mouse" coords="95,40,171,99,139,189,37,188,14,96" onmousedown="writeMessage(event, 'm-down');" onmouseup="writeMessage(event, 'm-up');" onmousemove="writeMessage(event, 'm-move');" onmouseout="writeMessage(event, 'm-out');" />
<area shape="poly" alt="red" title="Touch" coords="269,42,345,96,317,191,215,189,193,97" ontouchstart ="writeMessage(event, 't-start');" ontouchend="writeMessage(event, 't-end');" ontouchmove="writeMessage(event, 't-move');" ontouchcancel="writeMessage(event, 't-cancel');" />
</map>

<div id="message_box"></div>

蓝色多边形是为鼠标事件设置的。红色多边形用于触摸事件。

当我在常规 Safari 中查看此页面时,单击或悬停在蓝色多边形上会触发事件,这与我预期的一样。当然,红色多边形什么也不做(因为桌面不支持触摸事件)

但是,当我在我的 iPad 上查看此页面时,蓝色多边形会在单击时触发 mousemove、mousedown、mouseup 的三元组,除此之外什么都没有。更糟糕的是,触摸红色多边形没有任何作用!

我完全希望我只是错过了一些简单的事情,但如果没有,我真的很想知道到底发生了什么。

最佳答案

几个月过去了,没有人提供更明确的答案,所以我认为最好用我自己的发现来回应:

1) 图像 map 上的触摸事件在移动 safari 中似乎根本不受支持。

2) 尽管支持鼠标事件,但它们无法提供足够的控制来执行单次选择以外的任何操作(正如我上面提到的,同时触发 mousemove、mousedown 和 mouseup) ——即便如此,它也不像我(或其他任何人;)所希望的那样 react 灵敏。

解决方案:

我最终将图像放在一个 div 标签中(它确实支持所有触摸事件),然后根据原始图像映射数据进行我自己的点击检测。

这不是最理想的解决方案,但它运行良好且表现良好。希望这对其他人有帮助...

关于html - iOS/Mobile Safari 是否支持 HTML 图像映射中的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18754475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com