经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » CSS » 查看文章
用css实现圆形波浪效果图
来源:cnblogs  作者:=.=  时间:2018/12/7 9:11:49  对本文有异议

在移动端经常看到一些圆形波浪图来显示金额,刚开始我认为这种效果只能用canvas写的,后来发现用css也可以。

原理:我们都知道让块元素的border-radius:50%会变成圆形,如果少于50%呢,其实就变成不规则的圆形。我们可以利用这个特征,用伪类加上transform动画来实现波浪效果。

先看一下效果图:

  1. //css代码
  2. .wave {
  3. position: relative;
  4. width: 200px;
  5. height: 200px;
  6. background: @color;
  7. border: 5px solid #76daff;
  8. border-radius: 50%;
  9. overflow: hidden;
  10. }
  11. .wave-box::before,
  12. .wave-box::after {
  13. content: '';
  14. position: absolute;
  15. top: 0;
  16. left: 50%;
  17. width: 400px;
  18. height: 400px;
  19. border-radius: 45%;
  20. -webkit-transform: translate(-50%, -70%);
  21. transform: translate(-50%, -70%);
  22. background: rgba(255, 255, 255, 0.5);
  23. -webkit-animation: rotate 10s linear infinite;
  24. animation: rotate 10s linear infinite;
  25. z-index: 10;
  26. }
  27. @keyframes rotate {
  28. 50% {
  29. -webkit-transform: translate(-50%, -75%) rotate(180deg);
  30. transform: translate(-50%, -75%) rotate(180deg);
  31. }
  32. 100% {
  33. -webkit-transform: translate(-50%, -70%) rotate(180deg);
  34. transform: translate(-50%, -70%) rotate(180deg);
  35. }
  36. }
  37. //或者使用预编译语言更方便,这里使用less
  38. .wave(@width; @height; @color) {
  39. position: relative;
  40. width: @width;
  41. height: @height;
  42. background: @color;
  43. border: 5px solid @color;
  44. border-radius: 50%;
  45. overflow: hidden;
  46. &::before,
  47. &::after {
  48. content: '';
  49. position: absolute;
  50. top: 0;
  51. left: 50%;
  52. width: @width * 2;
  53. height: @height * 2;
  54. border-radius: 45%;
  55. transform: translate(-50%, -70%);
  56. background: rgba(255,255,255,0.5);
  57. animation: rotate 10s linear infinite;
  58. z-index: 10;
  59. }
  60. &::after {
  61. border-radius: 47%;
  62. background: rgba(255,255,255,0.5);
  63. animation: rotate 10s linear -5s infinite;
  64. z-index: 20;
  65. }
  66. }
  67. //调用
  68. .wave-box {
  69. .wave(200px; 200px; #76daff);
  70. }
  1. <!-- 页面上调用 -->
  2. <div class="wave-box"></div>
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号