美文网首页
:active in mobile

:active in mobile

作者: 老虎爱吃母鸡 | 来源:发表于2017-09-11 12:33 被阅读0次

    overview

    因为在移动端,我们没有hover的状态,但是往往我们需要对用户的点击作出反馈,让用户知道自己点击到了按钮

    resolve

    解决方案其实就是使用:active伪类,但是使用:active有几个注意事项

    IOS中,:active状态只在touch event设置后才触发

    On iOS, mouse events are sent so quickly that the down or active state is never received.

    Safari Developer Library的Highlighting Elements部分最后有提到,因为mouse事件发送太快,所以active不会被接收到

    解决方式就是显示设置touchstart事件,告诉浏览器去相应这个事件,可以直接写在body上

    <body ontouchstart="">
        ...
    </body>
    

    也可以在直接在入口script文件设置

    document.addEventListener('touchstart', function () {} )
    

    button按钮存在默认反馈状态

    IOS中的button按钮在默认情况下已经有了反馈的状态,表现为一层灰色遮罩,在移动端的safari点击会触发

    解决方法是使用私有属性把遮罩设置为透明

    html {
        -webkit-tap-highlight-color: rgba(0,0,0,0);
    }
    

    reference

    Safari Developer Library

    :active pseudo-class doesn't work in mobile safari

    相关文章

      网友评论

          本文标题::active in mobile

          本文链接:https://www.haomeiwen.com/subject/tjaxsxtx.html