• 技术文章 >web前端 >css教程

    如何使用纯CSS实现带有金属光泽的立体按钮的动画效果(附源码)

    不言不言2018-08-22 10:43:11原创2358
    本篇文章给大家带来的内容是关于如何使用纯CSS实现带有金属光泽的立体按钮的动画效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    效果预览

    2021531372-5b738bc6d477f_articlex.gif

    源代码下载

    https://github.com/comehope/front-end-daily-challenges/tree/master/004-metallic-glossy-3d-button-effects

    代码解读

    在 dom 中定义一个容器:

    <div class="box">BUTTON</div>

    容器居中显示:

    html, body {
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: skyblue;
    }

    设置按钮的 2d 样式,为了便于调整按钮尺寸,使用了变量:

    .box {
        background: linear-gradient(to right, gold, darkorange);
        color: white;
        --width: 250px;
        --height: calc(var(--width) / 3);
        width: var(--width);
        height: var(--height);
        text-align: center;
        line-height: var(--height);
        font-size: calc(var(--height) / 2.5);
        font-family: sans-serif;
        letter-spacing: 0.2em;
        border: 1px solid darkgoldenrod;
        border-radius: 2em;
    }

    设置按钮的 3d 样式:

    .box {
        transform: perspective(500px) rotateY(-15deg);
        text-shadow: 6px 3px 2px rgba(0, 0, 0, 0.2);
        box-shadow: 2px 0 0 5px rgba(0, 0, 0, 0.2);
    }

    定义按钮的鼠标划过动画效果:

    .box:hover {
        transform: perspective(500px) rotateY(15deg);
        text-shadow: -6px 3px 2px rgba(0, 0, 0, 0.2);
        box-shadow: -2px 0 0 5px rgba(0, 0, 0, 0.2);
    }
    
    .box {
        transition: 0.5s;
    }

    用伪元素增加光泽:

    .box {
        position: relative;
    }
    
    .box::before {
        content: '';
        position: absolute;
        width: 100%;
        height: 100%;
        background: linear-gradient(to right, transparent, white, transparent);
        left: 0;
    }

    定义光泽动画效果:

    .box::before {
        left: -100%;
        transition: 0.5s;
    }
    
    .box:hover::before {
        left: 100%;
    }

    最后,隐藏容器之外的内容:

    .box {
        overflow: hidden;
    }

    大功告成!

    相关推荐:

    如何使用纯CSS实现文字断开的动画效果(附源码)

    如何使用CSS实现渐变色动画边框的效果(附代码)

    如何使用CSS和混色模式实现loader动画效果(附代码)

    以上就是如何使用纯CSS实现带有金属光泽的立体按钮的动画效果(附源码)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:特效 codepen css
    上一篇:如何使用纯CSS实现文字断开的动画效果(附源码) 下一篇:如何使用纯CSS实现冰棍的动画效果(附代码)
    PHP编程就业班

    相关文章推荐

    • 纯CSS实现的漂亮的立体图片边框效果,阴影代码_图象特效• 纯CSS实现扑克牌效果_布局与层• 纯CSS实现一个微信logo,需要几个标签?_html/css_WEB-ITnose• 纯css实现扁平化360卫士logo demo_html/css_WEB-ITnose• 纯CSS实现单击锚点平滑切换的效果_html/css_WEB-ITnose• 纯CSS实现的二级下拉菜单效果代码实例_html/css_WEB-ITnose

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网