位置: IT常识 - 正文

css的rotate3d实现炫酷的圆环转动动画(css设置3d)

编辑:rootadmin
css的rotate3d实现炫酷的圆环转动动画 1.实现效果

推荐整理分享css的rotate3d实现炫酷的圆环转动动画(css设置3d),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:css rotatey,css hue-rotate,css hue-rotate,css实现3d效果,css translate3d,css rotation,css rotatey,css rotatey,内容如对您有帮助,希望把文章链接给更多的朋友!

2.实现原理2.1 rotate3d

rotate3d:rotate3d() CSS 函数定义一个变换,它将元素围绕固定轴移动而不使其变形。运动量由指定的角度定义; 如果为正,运动将为顺时针,如果为负,则为逆时针。

语法:

rotate3d(x, y, z, a)

含义:

x 类型,可以是 0 到 1 之间的数值,表示旋转轴 X 坐标方向的矢量。

y 类型,可以是 0 到 1 之间的数值,表示旋转轴 Y 坐标方向的矢量。

z 类型,可以是 0 到 1 之间的数值,表示旋转轴 Z 坐标方向的矢量。

a 类型,表示旋转角度。正的角度值表示顺时针旋转,负值表示逆时针旋转。

2.2 rotateZ

rotateZ:函数定义了一个转换,它可以让一个元素围绕横 Z 轴旋转,而不会对其进行变形。旋转轴围绕原点旋转,而这个原点通过transform-origin 属性来定义(默认的转换原点是 center)。 rotateZ(a) 相当于 rotate(a) or rotate3d(0, 0, 1, a)。

语法

rotateZ(a)

含义:

rotateZ() 引起的旋转量由指定。如果为正,则顺时针方向移动;如果为负,则逆时针方向移动。 a 是一个‘angle ’,表示旋转的角度。正数角度表示顺时针旋转,负数则表示逆时针旋转。 1turn:一圈,即360deg。90deg = 0.25turn。

2.3 transform-origincss的rotate3d实现炫酷的圆环转动动画(css设置3d)

transform-origin:更改一个元素变形的原点,默认的转换原点是 center。 语法:

transform-origin: center;

含义:

transform-origin属性可以使用一个,两个或三个值来指定,其中每个值都表示一个偏移量。没有明确定义的偏移将重置为其对应的初始值。 如果定义了两个或更多值并且没有值的关键字,或者唯一使用的关键字是center,则第一个值表示水平偏移量,第二个值表示垂直偏移量。

关键字是方便的简写方法,等同于以下角度值:

keywordvalueleft0%center50%right100%top0%bottom100%2.4 CSS 滤镜 filter 的drop-shadow

drop-shadow:投影实际上是输入图像的 alpha 蒙版的一个模糊的、偏移的版本,用特定的颜色绘制并合成在图像下面。 函数接受shadow(在CSS3背景中定义)类型的值,除了"inset"关键字是不允许的。该函数与已有的box-shadow 属性很相似;不同之处在于,通过滤镜,一些浏览器为了更好的性能会提供硬件加速。

语法:

drop-shadow(offset-x offset-y blur-radius spread-radius color)

含义:

offset-x offset-y (必须): offset-x指定水平距离,其中负值将阴影放置到元素的左侧。offset-y指定垂直距离,其中负值将阴影置于元素之上。如果两个值都为 0,则阴影直接放置在元素后面。

blur-radius (可选) : 阴影的模糊半径,指定为 。值越大,阴影就越大,也越模糊。如果未指定,则默认为 0,从而产生清晰、不模糊的边缘。不允许有负值。

spread-radius (可选): 阴影的扩展半径,指定为 . 正的值会导致阴影扩大和变大,而负的值会导致阴影缩小。如果未指定,则默认为 0,阴影的大小将与输入图像相同。

color (可选): 阴影的颜色,指定为 color。如果未指定,则使用 color 属性的值。如果颜色值省略,WebKit中阴影是透明的。

注意:box-shadow 属性在元素的整个框后面创建一个矩形阴影,而 drop-shadow() 过滤器则是创建一个符合图像本身形状 (alpha 通道) 的阴影。

eg:

drop-shadow(16px 16px 10px black)2.5 css伪元素

CSS 伪元素用于设置元素指定部分的样式。 ::before 伪元素可用于在元素内容之前插入一些内容。 ::after 伪元素可用于在元素内容之后插入一些内容。 ::selection 伪元素匹配用户选择的元素部分。

所有 CSS 伪元素:

选择器例子含义::afterp::after在每个 p 元素之后插入内容::beforep::before在每个 p 元素之前插入内容::first-letterp:first-letter选择每个p 元素的首字母::first-linep::first-line选择每个 p 元素的首行::selectionp::selection选择用户选择的元素部分3.实现步骤3.1.实现外层三个转动的圆假设有一个div标签,设置为圆,border颜色进行区分。 .box { border: 2px solid var(--lineColor); border-left: 2px solid var(--color); border-right: 2px solid var(--color); border-radius: 50%; }利用伪元素,再实现两个大小不一的圆。 .box,.box::after,.box::before { border: 2px solid var(--lineColor); border-left: 2px solid var(--color); border-right: 2px solid var(--color); border-radius: 50%;}.box { width: 200px; height: 200px; position: relative; } .box::before { width: 180px; height: 180px; margin-top: -90px; margin-left: -90px; }.box::after { width: 160px; height: 160px; margin-top: -80px; margin-left: -80px;}为div添加rotateZ旋转动画,旋转1圈。

.box { animation: turn 1s linear infinite; transform-origin: 50% 50%;}@keyframes turn { 100% { transform: rotateZ(-1turn); }}重写before和after动画,使三个圆转动有一定层次感。 .box::before { animation: turn2 1.25s linear infinite;}.box::after { animation: turn 1.5s linear infinite;}@keyframes turn2 { 100% { transform: rotateZ(1turn); }}3.2 实现内层三个转动的圆三个div标签,设置为圆。.box-circle,.box-circle1,.box-circle2 { border: 2px solid var(--color); opacity: .9; border-radius: 50%; position: absolute; left: 50%; top: 50%; transform-origin: 50% 50%; transform: translate(-50%, -50%); width: 100px; height: 100px;}分别添加同一个rotate3d旋转动画,设置一定的动画延时。 .box-circle {animation-delay: 0.2s;}.box-circle1 { animation-delay: 1.2s;}.box-circle2 { animation-delay: 2.2s;}@keyframes rotate { 100% { border: none; border-top: 2px solid var(--color); border-bottom: 2px solid var(--color); transform: translate(-50%, -50%) rotate3d(.5, 0.5, 0.5, -720deg); }}3.3 实现中间转动的月牙一个伪元素,设置为圆,添加上边框 border-top,通过drop-shadow加强阴影效果。

section::before { content: ''; position: absolute; height: 10px; width: 10px; border-radius: 100%; border-top: 1px solid orange; top: 50%; left: 50%; margin-top: -5px; margin-left: -5px; filter: drop-shadow(0 0 2px var(--color)) drop-shadow(0 0 5px var(--color)) drop-shadow(0 0 10px var(--color)) drop-shadow(0 0 20px var(--color));}为其添加rotataZ旋转一圈的动画。 section::before {animation: turn 1s infinite linear;}4.完整代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>圆弧转动</title></head><link rel="stylesheet" href="../common.css"><style> :root { --color: orange; --lineColor: rgba(102, 163, 224, .2); } body { background: #222; overflow: hidden; } section { position: relative; width: 200px; height: 200px; } section::before { content: ''; position: absolute; height: 10px; width: 10px; border-radius: 100%; border-top: 1px solid orange; top: 50%; left: 50%; margin-top: -5px; margin-left: -5px; animation: turn 1s infinite linear; filter: drop-shadow(0 0 2px var(--color)) drop-shadow(0 0 5px var(--color)) drop-shadow(0 0 10px var(--color)) drop-shadow(0 0 20px var(--color)); } .box, .box::after, .box::before { border: 2px solid var(--lineColor); border-left: 2px solid var(--color); border-right: 2px solid var(--color); border-radius: 50%; } .box::after, .box::before { position: absolute; content: ''; left: 50%; top: 50%; } .box { width: 200px; height: 200px; position: relative; animation: turn 1s linear infinite; transform-origin: 50% 50%; } .box::before { width: 180px; height: 180px; margin-top: -90px; margin-left: -90px; animation: turn2 1.25s linear infinite; } .box::after { width: 160px; height: 160px; margin-top: -80px; margin-left: -80px; animation: turn 1.5s linear infinite; } .box-circle, .box-circle1, .box-circle2 { border: 2px solid var(--color); opacity: .9; border-radius: 50%; position: absolute; left: 50%; top: 50%; transform-origin: 50% 50%; transform: translate(-50%, -50%); width: 100px; height: 100px; animation: rotate 3s linear infinite; } .box-circle { animation-delay: 0.2s; } .box-circle1 { animation-delay: 1.2s; } .box-circle2 { animation-delay: 2.2s; } @keyframes turn { 100% { transform: rotateZ(-1turn); } } @keyframes turn2 { 100% { transform: rotateZ(1turn); } } @keyframes rotate { 100% { border: none; border-top: 2px solid var(--color); border-bottom: 2px solid var(--color); transform: translate(-50%, -50%) rotate3d(.5, 0.5, 0.5, -720deg); } }</style><body> <section> <div class="box"></div> <div class="box-circle"></div> <div class="box-circle1"></div> <div class="box-circle2"></div> </section></body></html>5.更多css相关,尽在苏苏的码云如果对你有帮助,欢迎你的star+订阅!
本文链接地址:https://www.jiuchutong.com/zhishi/299559.html 转载请保留说明!

上一篇:聊聊后端Web开发框架(Python)的简单使用(web后端开发是什么意思)

下一篇:图像边缘检测(图像边缘检测的基本原理)

  • 助力上合组织国家农业现代化

    助力上合组织国家农业现代化

  • realme gt neo2怎么设置定时关机(realme gt neo2怎么打开开发者选项)

    realme gt neo2怎么设置定时关机(realme gt neo2怎么打开开发者选项)

  • 微信怎么只设置语音视频通知声音(微信怎么只设置一个人响)

    微信怎么只设置语音视频通知声音(微信怎么只设置一个人响)

  • 数字电路产品的接入方式有哪些(数字电路具有什么特点?)

    数字电路产品的接入方式有哪些(数字电路具有什么特点?)

  • spdif接口怎么用(spdif接口是干什么的)

    spdif接口怎么用(spdif接口是干什么的)

  • 华为freebuds3充电要多久(华为freebuds3充电指示灯绿色)

    华为freebuds3充电要多久(华为freebuds3充电指示灯绿色)

  • 华为p40怎么返回上一步(华为p40怎么返回上一层)

    华为p40怎么返回上一步(华为p40怎么返回上一层)

  • iphone7plus可以无线充电吗(苹果iphone7plus可以无线充电吗?)

    iphone7plus可以无线充电吗(苹果iphone7plus可以无线充电吗?)

  • i53350p性能(i53350p相当于几代i5)

    i53350p性能(i53350p相当于几代i5)

  • qq转载别人照片别人会不会知道(qq转载别人照片能看到不)

    qq转载别人照片别人会不会知道(qq转载别人照片能看到不)

  • 微信腾讯翻译怎么设置(打开腾讯翻译器)

    微信腾讯翻译怎么设置(打开腾讯翻译器)

  • 快手发出去的作品怎么重新编辑(快手发出去的作品怎么删除掉)

    快手发出去的作品怎么重新编辑(快手发出去的作品怎么删除掉)

  • 手机打开淘宝就黑屏(手机打开淘宝就闪退怎么回事)

    手机打开淘宝就黑屏(手机打开淘宝就闪退怎么回事)

  • 钉钉能不能窥屏(钉钉能不能窥屏?)

    钉钉能不能窥屏(钉钉能不能窥屏?)

  • ipad卡槽捅不开怎么办(ipad的卡槽卡住了怎么办)

    ipad卡槽捅不开怎么办(ipad的卡槽卡住了怎么办)

  • 淘宝特别关注怎么弄啊(淘宝特别关注怎么删除)

    淘宝特别关注怎么弄啊(淘宝特别关注怎么删除)

  • 苹果怎么设置点屏幕才亮(苹果怎么设置点三下截图)

    苹果怎么设置点屏幕才亮(苹果怎么设置点三下截图)

  • 华为手环不能接电话(华为手环不能接电话吗)

    华为手环不能接电话(华为手环不能接电话吗)

  • 苹果7p受基带门影响吗(苹果7plus基带门概率)

    苹果7p受基带门影响吗(苹果7plus基带门概率)

  • iphone11是什么芯片(苹果11什么芯片型号)

    iphone11是什么芯片(苹果11什么芯片型号)

  • 酷派大神note3的型号是多少(酷派大神note3root)

    酷派大神note3的型号是多少(酷派大神note3root)

  • 手机卡里的话费能退现吗(手机卡里的话费可以转到另一个卡里吗)

    手机卡里的话费能退现吗(手机卡里的话费可以转到另一个卡里吗)

  • 手机wifi无法访问互联网(手机WiFi无法访问互联网)

    手机wifi无法访问互联网(手机WiFi无法访问互联网)

  • Ubuntu22.04 下安装驱动、CUDA、cudnn以及TensorRT(ubuntu20.04.1安装)

    Ubuntu22.04 下安装驱动、CUDA、cudnn以及TensorRT(ubuntu20.04.1安装)

  • 纳税人资格是什么意思
  • 纳税信用等级是专管员评的吗
  • 消费税的计算方法有哪三种
  • 一般纳税企业所得税税率是多少2019
  • 中国的税收制度是什么
  • 房地产房屋质量检测
  • 差旅费报销单是外来原始凭证吗
  • 企业出借资金获利怎么算
  • 利润分配包括缴纳所得税吗
  • 政策性用房包括哪些
  • 车辆购置税多少?
  • 处置子公司的收益
  • 生产部门的费用计入什么科目
  • 收到子公司税后利润
  • 专项应付款转资本公积
  • 软件开发服务费税率
  • 长期借款优缺点分析
  • 个税按工资薪金未按时申报的处罚规定
  • 租金不开专票合理吗
  • 母公司代发工资如何处理
  • 计提应收票据利息怎么算
  • 补发上月工资如何计税
  • 房地产企业人防工程计入什么科目
  • 金蝶迷你版不能期末结账怎么办
  • 虚拟机安装苹果系统全过程
  • 企业违章行为
  • 能开运费发票吗?
  • win10更新21h1后很卡
  • 写一篇推荐书
  • 键盘剪切板怎么打开
  • 代购机票骗局
  • 对公转账存款
  • 房屋装修补偿款 避税
  • 房地产行业预售制度
  • 固定资产的预计使用寿命和净残值发生变更
  • 如何使用rank函数排名
  • ps位图矢量化
  • 企业年金管理费专票能抵扣吗
  • 为什么要结转成本?
  • 固定资产折旧率如何计算
  • MySQL中distinct与group by之间的性能进行比较
  • 现金发放工资会计科目怎么写
  • 什么是国有划拔土地私房
  • 短期借款会计分录例题及答案
  • 公司油票发票信息怎么查
  • 怎么作废银联在网上银行
  • 企业费用发票有哪些可以入账
  • 固定资产费用化有什么影响
  • 商业保险如何做伤残鉴定的
  • 无形资产账面价值和账面余额的区别
  • 车船税收费标准
  • 出租不动产如何缴纳增值税
  • 直租业务可以抵房租吗
  • mysql 5.7.30安装
  • mysql使用语句
  • sqlserver全文检索
  • linux如何安装c语言编译器
  • 怎么防止win10
  • Win10如何禁止显卡驱动自动更新
  • 注册表mime
  • windows7的所有操作都可以从( )
  • win10激活后是什么样子
  • w10系统如何安装
  • 天气8.2.0.308版本
  • tar命令参数详解
  • linux小技巧
  • Linux中mysqldump命令实例详解
  • 拖拽js实现
  • nodejs npm package.json中文文档
  • nginx日志路径配置
  • jquerycdn
  • 手机屏幕适配
  • js弹出框怎么写
  • jQuery中使用animate自定义动画的方法
  • python string包
  • 个人转让商业用房税费
  • 上海各区税务大厅
  • 个税申报表明细怎么打印
  • 收购烟叶支付的价外补贴怎么处理
  • 出口退税函调不予退税的后果
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设