在Android默认浏览器中,我无法让:active
或:hover
完成任务。我知道不建议在移动设备上使用:hover
和:active
,但考虑到除了默认的Android浏览器之外,它们在所有地方都能正常工作,我想我会尝试一下。此代码在iOS和Windows Phone上运行良好,但在Android上运行不正常,我无法弄清楚原因。
CSS:
* {
font-family: Arial, sans-serif;
font-size: 14px;
}
#clickBox {
background: #CCC;
padding: 10px;
text-align: center;
width: 100px;
}
#hiddenBox {
background: #BBB;
height: 0;
overflow: hidden;
text-align: center;
transition: height 0.5s;
width: 120px;
}
#clickBox:active ~ #hiddenBox, #clickBox ~ #hiddenBox:active, #clickBox:hover ~ #hiddenBox, #clickBox ~ #hiddenBox:hover {
height: 50px;
}
HTML:
<section id="clickBox" aria-haspopup="true">
Click here!
</section>
<section id="hiddenBox">
This appears!
</section>
答案 0 :(得分:0)
我想出来了。出于某种原因,Android仅在用户旋转手机时才触发:hover
事件。我不知道为什么会这样,但确实如此。
所以,这是我修复它的方式:
if (navigator.userAgent.toLowerCase().indexOf("android") > -1) {
$(document).ready(function() {
$("nav").children("a").click(function(e) {
e.preventDefault();
$(this).next("ul").css("transform","rotate(90deg)");
$(this).next("ul").css("transform","rotate(0deg)");
});
});
};
基本上,我旋转我想要悬停的东西,然后立即旋转它。它会使:hover
按预期工作。它对我来说几乎没有意义,但它确实有效。
如果有任何人对此有任何疑问,请告知我们。