Javascript Can';我不能让这个CSS转换在iPhone上正常运行

Javascript Can';我不能让这个CSS转换在iPhone上正常运行,javascript,html,ios,css,Javascript,Html,Ios,Css,我目前正在进行CSS转换,我正在努力寻找合适的Javascript使其在移动设备上正常运行。 在“肮脏的十几加”一节中,可以看到过渡。我现在有 ontouchstart=“this.classList.toggle('hover'); 添加到每个div中,但当前需要您在移动设备上按住手指才能使其保持过渡状态。我想知道是否有人能给我一些见解,告诉我如何通过单击使其保持过渡状态。我尝试了pseudo:focus,但它完全停止了功能。 谢谢!-肖恩('click')手机中没有悬停事件。您需要将悬停事件

我目前正在进行CSS转换,我正在努力寻找合适的Javascript使其在移动设备上正常运行。 在“肮脏的十几加”一节中,可以看到过渡。我现在有 ontouchstart=“this.classList.toggle('hover'); 添加到每个div中,但当前需要您在移动设备上按住手指才能使其保持过渡状态。我想知道是否有人能给我一些见解,告诉我如何通过单击使其保持过渡状态。我尝试了pseudo:focus,但它完全停止了功能。
谢谢!-肖恩('click')手机中没有悬停事件。您需要将悬停事件转换为移动电话的单击事件。使用javascript检测是否是手机。设置一个常量
var phone=false
,如果它是一个电话,将其设置为true,如果不是,则保持false。然后在控制/或触发动画的功能中使用它。

您不能使用:在手机上悬停。 更多信息

正如您所知,触摸屏设备上不存在悬停行为。所以 当你设计一个响应性强的网站时,你应该仔细计划 在哪里使用:悬停交互。打开一些URL的简单链接 将在某些触摸屏设备上失去:悬停效果。在iOS上 :鼠标悬停在单击事件之前触发,因此您将看到鼠标悬停 在页面更改之前,先进行短暂的样式设置。这些都是次要的 但是,它们不会影响网站的功能。真实的 问题是:悬停会隐藏或显示另一个使用 显示或查看CSS属性。这种类型的:悬停将 转化为触摸屏上的双击行为


正如其他人所说,您需要避免:悬停

解决问题的最简单方法是更新CSS,如下所示:

.top:hover,
.top.touched {
    -webkit-transform:translateY(-150px);
    -webkit-transition: all .5s;
}
然后将
touchtstart
touchtend
上的元素作为类添加到元素中。我的猜测是,您需要维护当前被触摸的元素,以便在用户滚动或触摸另一个元素时可以删除转换状态

(编辑:更新小提琴,允许用户点击关闭元素)

外壳,便于在智能手机上进行测试:

这不是真的,你能帮我吗?真的很难在智能手机上实现过渡。当然,我可以。让我为你凑一把小提琴吧!这是提琴:-和外壳,为了更容易在智能手机上测试:一个经过编辑的提琴,允许用户点击元素来关闭过渡:(稍微好一点的体验:)非常感谢!简直是个救命恩人!