我一整天都在尝试使这个JSFiddle对手机也能起作用,但是我的所有尝试都没有效果。在桌面上,当用户将鼠标悬停在箭头上时,它会变成红色。在移动设备上,当用户轻触箭头(以便单击它)时,悬停效果会被激活并永久保留,直到网站的其他位置发生(随机的)点击。如何摆脱这个噩梦?
HTML:
HTML:
<nav class="nav-fillpath">
<a class="next" onClick="load('prev')">
<span class="icon-wrap"></span>
<h3><strong>Alexis</strong> Tsipras</h3>
</a>
</nav>
CSS:
.nav-fillpath a.next:hover::after,
.nav-fillpath a.next:hover .icon-wrap::after {
-webkit-transform: translateX(-50%) rotate(55deg);
transform: translateX(-50%) rotate(55deg);
background-color: red;
}
一些相关的好问题:
编辑_0:
在查看了这篇文章如何防止触摸设备上按钮的粘性悬停效果之后,如果我使用这个:
ontouchend="this.onclick=fix
我的链接现在没有任何反应。如果我使用=fix()
,我会得到一个错误:
未捕获的类型错误:无法读取未定义属性'removeChild'
EDIT_1:
我尝试了Shikkediel建议的方法,在这个fiddle中,但是我没有成功。这里是新的HTML:
<a class="next" onClick="load('prev')" ontouchend="fix()">
Uncaught TypeError: Cannot read property 'removeChild' of undefined
。 - gsamarastouchstart
触发的。那么为什么不尝试function fix() {$(window).trigger('touchstart')}
。或者相关事件/其他元素... - Shikkedielclick
和touchend
,但是都没有用! :/ - gsamarasaddClass
和removeClass
,并监听所有事件。这样,您就不必弄清访问者使用的设备,而脚本将准备好两者。随着屏幕尺寸变得越来越大,一些机器具有处理两者的能力,试图区分触摸和鼠标变得越来越困难。但很好,你已经找到了一个可行的解决方案。 - Shikkediel.nav-fillpath a
上已更改为.activated
类。然后,这些类会在鼠标和触摸事件上使用jQuery添加和删除。我卡在了.next
类也受到CSS影响的地方。也许我错过了显而易见的东西,但我无法看到.nav-fillpath a.next
类不仅仅等于.next
。无法正确处理。我的意思是规则就在.activated
之间。http://jsfiddle.net/x3f084vz/ - Shikkediel