前端例程20220729:按钮悬停边框卷动效果

Posted Naisu Xu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端例程20220729:按钮悬停边框卷动效果相关的知识,希望对你有一定的参考价值。

演示

原理

  • 使用::before和::after元素作为两个滑块;
  • 将滑块放置在边框上;
  • 鼠标悬停时改变滑块位置;

代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <title>按钮悬停边框卷动效果</title>

    <style>
        * 
            padding: 0;
            margin: 0;
            user-select: none;
        

        html,
        body 
            height: 100vh;
        
    </style>

    <style>
        body 
            display: flex;
            background-color: #333333;
            align-items: center;
            justify-content: center;
        

        .btn 
            width: 150px;
            height: 50px;
            margin: 20px;
            /* 边框设置为solid后会继承下面color所设置的颜色 */
            border: 3px solid;
            background: none;
            font-size: 20px;
        

        .btn:nth-child(1) 
            color: #A3CB38;
        

        .btn:nth-child(2) 
            color: #ED4C67;
        

        .btn:focus 
            outline: none;
        
    </style>

    <style>
        /* 这里的position=relative和下面的position=absolute用于方便滑块定位使用 */
        .btn 
            position: relative;
        

        /* 使用::before和::after作为两个滑块 */
        .btn::before,
        .btn::after 
            content: "";
            position: absolute;
            width: 10px;
            height: 3px;
            /* 倾斜滑块 */
            transform: skewX(45deg);
            background: #333333;
            /* 设置滑块位置变化过度动画 */
            transition: 0.3s linear;
        

        /* 定位滑块初始位置 */
        .btn::before 
            top: -3px;
            left: 10%;
        

        .btn::after 
            bottom: -3px;
            right: 10%;
        

        /* 设置光标悬停后滑块位置 */
        .btn:hover:before 
            left: 80%;
        

        .btn:hover:after 
            right: 80%;
        
    </style>
</head>

<body>
    <button class="btn">BUTTON</button>
    <button class="btn">BUTTON</button>
</body>

</html>

以上是关于前端例程20220729:按钮悬停边框卷动效果的主要内容,如果未能解决你的问题,请参考以下文章

前端例程20220906:霓虹灯效按钮

前端例程20220802:玻璃背光按钮

如何使悬停在活动按钮上不使用悬停效果?

前端例程20221024:流光效果按钮

前端例程20220728:按钮点击涟漪效果

前端例程20220914:带悬停动画登陆页面