美文网首页
css移动端:acitve效果的实现

css移动端:acitve效果的实现

作者: 枫林残忆168 | 来源:发表于2019-06-10 19:03 被阅读0次

做移动前端也有一些日子了,一直有个问题没有解决,就是与pc端那样的一个:hover的效果,:hover是鼠标指针浮动在其上的元素的一个选择器,但因为在移动端是没有鼠标的,代替的是触摸屏,用户也不是有“鼠标指针浮动在其上的元素”的情况,有也很少。 所以取代的应该:active这个选择器,但是通过实践,发现情况不是很理想,在QQ浏览器上有时触发,有没不触发,在我mx3带自浏览器上根本没效果。
最近在看美团h5的页面时发现他们做对这个效果做得很好(这里说实话,美团网在h5这一块做得真好),看了他们代码之后,发现他们也是用:active来实现这个效果,但他们多了一行js代码:

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

其实这行代码带没有做什么事,只是对body绑定了一个touchstart事件,然后也没做什么事。

自已实践了一下发现可以了,效果真心不错。赞一下美团。

ps:在移动端中浏览器会有自带的一个点击高亮效果,可以通过给a标签或者body,html加

-webkit-tap-highlight-color:transparent;

都行。


源码:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>css移动端:acitve效果的实现</title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    </head>

    <body>
        <style>
            span:active {
                background-color: red;
                -webkit-tap-highlight-color: transparent;
            }
            span{
                background-color: blue;
                color: #fff;
                padding: 5px 10px;
                border-radius: 5px;
            }
        </style>
        <span>123</span>
        <script>
            document.body.addEventListener('touchstart', function() {});
        </script>
    </body>
</html>

效果:

相关文章

网友评论

      本文标题:css移动端:acitve效果的实现

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