无法获取:有效或:悬停效果可在Android中使用

时间:2013-12-05 19:13:16

标签: android css mobile hover

在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>

JS小提琴:http://jsfiddle.net/gDRK2/1/

1 个答案:

答案 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按预期工作。它对我来说几乎没有意义,但它确实有效。

如果有任何人对此有任何疑问,请告知我们。