我在iPad上的网页上有一个非常奇怪的行为(仅限)。我的Web应用程序基于AJAX加载。因此,页面的某些部分(如过滤器和主线框)是静态的,但计算的主要内容是通过AJAX加载的。
在内容中,用户选中的过滤器选项由div元素(过滤器芯片)表示,就像在ebay或其他任何页面中一样。用户可以通过X-ing这样的芯片取消选中过滤器,或者只需单击静态内容上的filter-checkbox。芯片之后还有一个链接,以便一次重置/删除所有过滤器选项。
在过滤芯片部分下,还有另一部分用于对页面上的结果集进行排序。它表示为占据整个宽度的条/梁。
如下所示:
--------------------------------------------
| filter1 filter2 filter3 reset_all_filters | <--- FilterChips section
|--------------------------------------------
| sortByA | sortByB | sortByC | sortByD | <--- Sorting section
--------------------------------------------
单击reset_all_filters链接会导致重新加载内容。加载后,用户在重置后不会看到FilterChips部分,整个内容都会向上移动。因此,排序部分现在正好位于FilterChips部分之前的位置。
有趣的是,点击的reset_all_filters-link正下方的排序项目在加载内容后会产生悬停效果。
我认为点击指针仍然保留在该位置,并导致下面的元素悬停。
对于那些想知道为什么FilterChips部分或Sorting部分属于加载内容的人: 这确实是我/我们(公司)必须重新考虑的事情。但与此同时,我们必须处理它。
那么对我的问题有什么建议吗?感谢每一位帮助!
答案 0 :(得分:3)
在2013年1月的一个较老的问题中,有人在Apple的文档中声明这被描述为预期的行为。
https://stackoverflow.com/a/48217487/1503923
这里引用:
这似乎是Safari中的预期行为。 Apple的documentation表示单指点击是作为鼠标事件处理的,并显示在点按期间引发的事件。在点击开始时有一个鼠标悬停,但只有当您点击其他内容时才会触发鼠标输出。这意味着Safari假定指针停留在同一个位置,直到下一次点击,这意味着下部元素处于悬停状态是有意义的。
要解决您的问题,您必须在css或特殊的css规则中应用某种媒体查询,这样可以避免为:hover
元素设置不同类型的样式。
a:hover { background-color: blue; }
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px) {
a:hover { background-color: transparent; }
}
或某种其他处理方式,以确定您的用户是否有可能出现此问题的ipad或任何其他平板电脑设备。