最近组长要我研究一个开源网站前端效果,其中有一个弧形旋转的动画,研究了下可以使用css里面transform+animation组合实现

先上效果图忽略水印。。。视频gif免费版的都有好大的水印

 就是这样一个外圈有渐变移动的动画

实现步骤

一、html代码:

<div class="bj">
      <div class="bjzhuan"></div>//旋转的盒子
      <div class="hidBox"&gt;</div>//遮蔽的盒子
</div>

 二、css代码:

1、先设置最外层盒子的背景

.bj {
  width: 600px;
  height: 600px;
  background-image: url("../../../public/bj.svg");
  background-repeat: no-repeat;
  background-size: 100%;
  display: flex;
  align-items: center;
  position: relative;
}

就是这样一个svg图片

 2、设置需要旋转的盒子

.bjzhuan {
  position: absolute;//设置绝对定位
  width: 600px;
  height: 300px;
  top: 0;
  left: 0;
  will-change: transform;//提高浏览器页面渲染性能
  transform-origin: 50% 100%;//设置旋转中心这里设置成该盒子(bjzhuan)宽的一半,高的全部,刚好就是父盒子(bj)的中心
  border-radius: 50% 50% 0 0/100% 100% 0 0;//为元素添加圆角边框,前的四个数值表示圆角的水平半径,后面四个值表示圆角的垂直半径
  background-image: linear-gradient(
    60deg,
    rgba(109, 207, 251, 0) 0%,
    rgba(109, 207, 251, 0.2) 40%,
    rgba(109, 207, 251, 0) 100%
  );//实现渐变效果,60度
  clip-path: polygon(100% 0, 20% 0%, 50% 100%, 0 100%, 0 0);//实现规则图形这里是四个坐标点,用逗号分隔开
  -webkit-transform: rotate(360deg);//实现360度旋转
  animation: rotation 3s linear infinite;
  -moz-animation: rotation 3s linear infinite;
  -webkit-animation: rotation 3s linear infinite;
  -o-animation: rotation 3s linear infinite;
}
@-webkit-keyframes rotation {
  from {
    -webkit-transform: rotate(0deg);
  }

  to {
    -webkit-transform: rotate(360deg);
  }
}

此时的效果

 这样一个圆弧三角,并且是360度旋转的。(我这里只截了个图,转成gif又得注册。。)

3、最后再设置遮蔽盒子的css

.hidBox {
  height: 500px;
  width: 500px;
  position: absolute;
  background-color: #12131b;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  z-index: 1;
}

这样里面三角部分就被挡住了,就会实现想要的效果

 大家有什么配置不懂的可以评论留言,一起探讨

原文地址:https://blog.csdn.net/wzy_PROTEIN/article/details/128533856

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_15659.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注