小球环形转圈效果

首先我使用了html+js+css来实现这个效果,并且可以均匀分布小球之间的距离

<div class="big-circle">
      <div class="small-circle"></div>
      <div class="small-circle"></div>
      <div class="small-circle"></div>
      <div class="small-circle"></div>
      <div class="small-circle"></div>
      <div class="small-circle"></div>
      <div class="small-circle"></div>
      <div class="small-circle"></div>
      <div class="small-circle"></div>
      <div class="small-circle"></div>
</div>

里面的div就是旋转的小球,可以任意添加数量

.big-circle {
        width: 300px;
        height: 300px;
        border-radius: 50%;
        /* background-color: red; */
        border: 1px solid black;
        text-align: center;
        margin: 0 auto;
        color: #fff;
        font-size: 25px;
        margin-top: 150px;

        /* margin-top: 35px; */
        display: flex;
        justify-content: center;
        align-items: center;
        line-height: 200px;
        position: relative;
        animation: rotate linear infinite 20s;
}
.small-circle {
        position: absolute;
        width: 75px;
        background-color: black;
        border-radius: 50%;
        height: 75px;
}
@keyframes rotate {
  to {
    transform: rotate(360deg);
  }
}

这里就是css样式

const items = document.querySelectorAll(".big-circle .small-circle");
      const r = document.querySelector(".big-circle").clientWidth / 6;
      const count = items.length;
      const pieceDeg = 360 / count;
      for (let i = 0; i < count; i++) {
        let t = i * pieceDeg;
        t = (Math.PI / 180) * t;
        const x = Math.sin(t) * r;
        const y = -Math.cos(t) * r;
        items[i].style.transform = `translate(${x}px,${y}px)`;
      }

这是js部分代码,使用了函数计算

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值