本篇文章给大家带来的内容是关于如何使用纯css实现带有金属光泽的立体按钮的动画效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
效果预览
源代码下载
https://github.com/comehope/front-end-daily-challenges/tree/master/004-metallic-glossy-3d-button-effects
代码解读
在 dom 中定义一个容器:
BUTTON
登录后复制
容器居中显示:
立即学习“前端免费学习笔记(深入)”;
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实现文字断开的动画效果(附源码)
以上就是如何使用纯CSS实现带有金属光泽的立体按钮的动画效果(附源码)的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2893437.html