使用js和css 实现div旋转围绕圆分布排列
记录,以防忘记
围绕圆

import React, { useEffect } from 'react';
import './index.scoped.scss';const Test = () => {const arr = Array.from({ length: 28 }, (_, index) => index + 1);useEffect(() => {const dayTotal = arr.length;// 动态设置每个点的旋转角度const dots = document.querySelectorAll('.dot') as NodeListOf<HTMLElement>;const pDeg = 360 / dayTotal;dots.forEach((dot, index) => {dot.style.transform = `rotate(${index * pDeg}deg) translate(0, -200px)`;});}, [arr.length]);return <div className='flex items-center justify-center w-full h-[100vh]'><div className='relative bg-gray-700 rounded-full box'>{arr.map((item, index) => {return <div key={index} className='absolute bg-blue-400 dot'>{item}</div>;})}</div></div>;
};export default Test;// scss$containSize: 400px;
$ballSize: 20px;.box {width: $containSize;height: $containSize;position: relative;.dot {width: $ballSize;height: $ballSize;position: absolute;top: 50%;left: 50%;margin-left: calc(-1 * $ballSize / 2);margin-top: calc(-1 * $ballSize / 2);transform-origin: center;}
}
进阶 实现loading加载

import React, { useEffect } from 'react';
import './index.scoped.scss';const Test = () => {const arr = Array.from({ length: 32 }, (_, index) => index + 1);return <div className='flex items-center justify-center w-full h-[100vh] bg-[#5bbff1]'><div className='relative rounded-full loading'>{arr.map((item, index) => {return <div key={index} className='absolute dot' />;})}</div></div>;
};export default Test;// scss$containSize: 150px;
$ballSize: 10px;.loading {width: $containSize;height: $containSize;$n: 32; // 小球数量$pDeg: calc(360deg / $n); // 每个小球旋转的角度.dot {width: $ballSize;height: $ballSize;top: 0;left: 50%;margin-left: calc(-1 * $ballSize / 2);margin-top: calc(-1 * $ballSize / 2);transform-origin: center calc($containSize / 2) + calc($ballSize / 2);$duration: 2s; // 小球动画总时长@for $i from 1 through $n {&:nth-child(#{$i}) {transform: rotate(calc($i - 1) * $pDeg);&::after,&::before {animation-delay: -(calc($duration / $n * ($i - 1) * 6));}}}&::before,&::after {content: '';position: absolute;width: 100%;height: 100%;border-radius: 100px;}perspective: 70px;transform-style: preserve-3d;&::before {top: -100%;background: #000;animation: rotate-black $duration infinite;@keyframes rotate-black {0% {animation-timing-function: ease-in;}25% {transform: translate3d(0, 100%, $ballSize);animation-timing-function: ease-out;}50% {transform: translate3d(0, 200%, 0);animation-timing-function: ease-in;}75% {transform: translate3d(0, 100%, -$ballSize);animation-timing-function: ease-out;}}}&::after {top: 100%;background: #fff;animation: rotate-white $duration infinite;@keyframes rotate-white {0% {animation-timing-function: ease-in;}25% {transform: translate3d(0, -100%, -$ballSize);animation-timing-function: ease-out;}50% {transform: translate3d(0, -200%, 0);animation-timing-function: ease-in;}75% {transform: translate3d(0, -100%, $ballSize);animation-timing-function: ease-out;}}}}
}
相关文章:
使用js和css 实现div旋转围绕圆分布排列
记录,以防忘记 围绕圆 import React, { useEffect } from react; import ./index.scoped.scss;const Test () > {const arr Array.from({ length: 28 }, (_, index) > index 1);useEffect(() > {const dayTotal arr.length;// 动态设置每个点的旋转角…...
SQL Server中CPU使用率过高的排查
CPU使用率过高有许多可能原因,但以下原因最为常见: 1.由于以下情况,表或索引扫描导致的高逻辑读取: 过期统计信息 缺少索引 参数敏感计划 (PSP) 问题 设计不佳的查询 2.工作负荷增加 对于安装了sqlserver的服务器,可…...
AUTOSAR AP常用文档前缀
AUTOSAR AP常用文档前缀总结如下表: 缩写全称含义EXPExplanation文档类别,跟踪类别 讨论其他文件中已经显示的内容的说明材料MODModel文档类别,跟踪类别 元级别1(模型)上的建模内容(模型或从模型生成的内容)RSRequirement Specification文档…...
服务器迁移基于Tomcat部署的java应用,没有源码怎么办?
文章目录 反编译创建java工程编译新的数据库配置类DbUtilclass文件替换到Tomcat配置的应用路径 docBase背景:非国产化项目服务器审计不通过,需要迁移到外部公司。由于项目是第三方公司开发,丢失java项目源码。 部署环境:Tomcat7,JDK1.8 涉及JAVA项目的有两个服务,一个电台…...
kafka-go使用:以及kafka一些基本概念说明
关于kafka 作为开发人员kafka中最常关注的几个概念,是topic,partition和group这几个概念。topic是主题的意思,简单的说topic是数据主题,这样解释好像显得很苍白,只是做了个翻译。一图胜前言,我们还是通过图解来说明。…...
景联文科技:破解数据标注行业痛点,引领高质量AI数据服务
数据标注行业是人工智能和机器学习领域中一个非常重要的组成部分。随着AI技术的发展,对高质量标注数据的需求也在不断增长。 数据标注市场的痛点 1. 团队管理 在众包和转包模式下,管理大量的标注人员是一项挑战。 需要确保标注人员的专业性、稳定性和…...
C#获取Network的相关信息
1,获取网络的通断。 //方法1:无效果,并不能反映当前网络通断 bool availableSystem.Windows.Forms.SystemInformation.Network//方法2:通过VB获取网络状态,可反映当前网络通断 Microsoft.VisualBasic.Devices.Network…...
Jenkins 部署Vue项目指引: Vue项目本地跨域代理 、解决ERR_UNSAFE_PORT
文章目录 引言I Jenkins 部署Vue项目配置插件安装系统配置NodeJS安装目录和别名设置新建任务(通用类型)构建环境Build Steps(构建步骤)II nginx部署站点(端口和站点目录的映射)查找Nginx配置文件端口和站点目录的映射III Vue项目本地跨域代理,屏蔽掉后端服务API的网关IP…...
C语言电子画板
目录 开头程序程序的流程图程序的效果结尾 开头 大家好,我叫这是我58。今天,我们来看一下我用C语言编译的电子画板和与之相关的一些东西。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <Windows.h> int main() …...
Android Gradle开发与应用技术原理
Android Gradle开发与应用技术原理 Android Gradle开发与应用技术原理一、概述二、Gradle构建原理1. Gradle架构2. Gradle构建过程3. 构建脚本 三、Gradle插件机制四、在Android应用中实现Text-to-Speech(TTS)功能1. 配置Gradle依赖2. 实现TTS功能示例代…...
Midjourney入门-提示词基础撰写与公式
前言 在前几篇教程里我们已经可以初步使用Midjourney进行出图了。 包括也了解了Midjourney的指令与参数。 但如果你想用Midjourney去生成各种各样高质量的图片, 并且生成的图片是你想要的画面内容,也就是更好控制生成图片的画面内容与风格…...
Apache Tomcat服务器版本号隐藏
渗透测试时发现有一台服务器的404报错页面中,有Apache Tomcat的版本号信息显示,发生了信息泄露,可能导致服务器被攻击。如下所示: 解决步骤如下: 1. 隐藏HTTP响应头中的Server信息 Tomcat默认会在HTTP响应头中包含S…...
【Qt】Qt编程注意事项
目录 Qr中的命名规范 Qt Creator中的快捷键 查询文档的方式 Qt窗口坐标体系 Qr中的命名规范 在学习编程语言阶段,给变量、函数、文件、类命名是非常有讲究的。 命名要有描述性,不要使用abc,xyz这种比较无规律的名字类描述。如果名字比较…...
在Linux系统安装Kafka
注意:我的是在云服务器上基于Docker配 在防火墙上放行端口号 2181(Zookeeper) 9092(Kafka) 一、先配置 Docker 守护进程(daemon)的镜像加速器(registry mirrors) sudo mkdir -p /etc/docker sudo tee /etc/docker/da…...
【CSharp】简单定义一个异步方法
【CSharp】定义一个异步方法 1.背景2.异步方法3.代码说明1.背景 相关博客: 【CSharp】使用异步事件处理程序和委托来进行异步调用 https://blog.csdn.net/jn10010537/article/details/140898179在 C# 中,异步方法和同步方法是两种执行代码的方式, 它们主要区别在于处理任务…...
贪心算法之货仓选址问题
#include<stdio.h> #include<stdlib.h> #include<math.h>//贪心算法之货仓选址问题/*** void* p是万能指针,可以和其它任意类型的指针进行转换,前提是确保转换是合法的*/ //写好用于qsort的比较函数,这里写的函数一般用于…...
Java网络编程——Request Response 对象
Response - 网页 上一章我们学习了 Java 中使用 Okhttp3 库请求网页或调用 API 的知识。 使用一条语句执行调用请求,并取得返回结果字符串: call.execute().body().string()execute() 方法是真正执行发送请求,前面的一系列代码是做前置准备…...
【代码随想录训练营第42期 Day24打卡 回溯Part3 - LeetCode 93.复原IP地址 78.子集 90.子集II
目录 一、做题心得 二、题目与题解 题目一:93.复原IP地址 题目链接 题解:回溯--分割问题 题目二:78.子集 题目链接 题解:回溯--子集问题 题目三:90.子集II 题目链接 题解:回溯--子集问题 三、小…...
python venv和virtualenv详解
一、venv简介 C:\Users\love1>python -m venv -h usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip][--prompt PROMPT] [--upgrade-deps]ENV_DIR [ENV_DIR ...]该命令用于在一个目录或者多个目录中创建一个虚拟的…...
《征服数据结构》树堆(Treap)
摘要: 1,Treap的介绍 2,Treap节点的插入 3,Treap节点的删除 4,Treap和笛卡尔树的区别 1,Treap的介绍 Treap又叫树堆,属于一种自平衡二叉搜索树,是由单词Tree和Heap构成,是…...
保姆级教程:用Python+Socket实现西门子CNC产量数据自动采集(附避坑指南)
PythonSocket实现西门子CNC产量数据自动化采集实战指南 在工业4.0时代,生产数据的实时采集与分析已成为智能制造的核心环节。对于使用西门子数控系统(如828D、840DSL等)的制造企业而言,如何绕过复杂的授权流程,通过编程…...
2025年短剧APP开发选型指南:uniApp混合开发 vs 安卓原生,哪个更适合你?
2025年短剧APP开发选型指南:uniApp混合开发 vs 安卓原生,哪个更适合你? 在短视频内容消费持续爆发的当下,微短剧作为一种新兴的内容形态正在迅速崛起。对于想要抓住这一风口的创业团队来说,技术选型往往成为第一个关键…...
从移动平均到IIR滤波:用Matlab filter函数实现数据降噪的完整指南(附对比实验)
从移动平均到IIR滤波:用Matlab filter函数实现数据降噪的完整指南(附对比实验) 在数据分析与信号处理领域,噪声污染是影响结果准确性的常见挑战。无论是来自传感器的物理干扰,还是数据传输过程中的随机波动,…...
家庭实验室应用:OpenClaw+gemma-3-12b-it管理个人科研数据
家庭实验室应用:OpenClawgemma-3-12b-it管理个人科研数据 1. 为什么需要AI助手管理科研数据 去年冬天,我在整理三年积累的植物生长实验数据时,发现了一个尴尬的事实:有37个Excel文件分散在6个不同文件夹里,命名规则混…...
Qwen3-14B WebUI定制教程:更换主题、添加历史记录、导出对话功能
Qwen3-14B WebUI定制教程:更换主题、添加历史记录、导出对话功能 1. 准备工作与环境检查 在开始定制Qwen3-14B的WebUI之前,我们需要确保环境已经正确配置并运行。以下是准备工作步骤: 1.1 确认镜像版本与硬件配置 首先检查您的环境是否符…...
【花雕学编程】代码泄露之后:深度剖析Claude开源对开发者生态的冲击与机遇
导语:2026年3月31日,Anthropic 旗下 Claude Code CLI 客户端源码意外泄露,1906个源文件、51.2万行TypeScript代码被开发者备份至 GitHub 仓库 instructkr/claude-code,标注为“仅供研究”。这场看似偶然的打包失误,并非…...
从BGA封装到Xtacking架构:图解NAND堆叠技术如何影响SSD性能
从BGA封装到Xtacking架构:NAND堆叠技术如何重塑SSD性能格局 当一块企业级SSD的读写速度突破7GB/s时,工程师们发现传统的NAND封装技术正在成为性能提升的瓶颈。在PCIe 5.0时代,信号传输速率需要达到2400MT/s才能充分发挥带宽潜力,而…...
Windows Cleaner实战指南:解决C盘空间不足和电脑卡顿的5个高效策略
Windows Cleaner实战指南:解决C盘空间不足和电脑卡顿的5个高效策略 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows…...
Mojo结构体直传Python内存视图:零序列化跨语言数据流实现(附GDB内存布局验证截图)
第一章:Mojo结构体直传Python内存视图:零序列化跨语言数据流实现(附GDB内存布局验证截图)Mojo 通过其底层 value 和 parameter 机制,允许结构体在不触发拷贝或序列化的情况下,直接暴露为 Python 的 memoryv…...
PyFlow多线程编程:SingletonThreadSampleNode的完整实现指南
PyFlow多线程编程:SingletonThreadSampleNode的完整实现指南 【免费下载链接】PyFlow Visual scripting framework for python 项目地址: https://gitcode.com/gh_mirrors/py/PyFlow PyFlow作为Python的视觉化脚本框架,为开发者提供了直观的节点编…...
