位置: 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后端开发是什么意思)

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

  • 哪种牌子的笔芯好用(哪种牌子的笔记本好)(哪个牌子的笔芯最好)

    哪种牌子的笔芯好用(哪种牌子的笔记本好)(哪个牌子的笔芯最好)

  • 小雅智能音箱怎么连蓝牙(小雅智能音箱怎么连接网络)

    小雅智能音箱怎么连蓝牙(小雅智能音箱怎么连接网络)

  • 华为声控功能怎么开(华为声控设置在哪里)

    华为声控功能怎么开(华为声控设置在哪里)

  • 天猫超市可以退货吗(天猫超市可以退差价吗)

    天猫超市可以退货吗(天猫超市可以退差价吗)

  • 佳能打印机如何重新设置wifi(佳能打印机如何连接电脑)

    佳能打印机如何重新设置wifi(佳能打印机如何连接电脑)

  • 微信表情整理是灰色的(微信表情整理在哪)

    微信表情整理是灰色的(微信表情整理在哪)

  • 小米10有必要买延保吗(小米10有必要买平板吗)

    小米10有必要买延保吗(小米10有必要买平板吗)

  • qq如何发2秒dj语音(qq里两秒语音发一首歌)

    qq如何发2秒dj语音(qq里两秒语音发一首歌)

  • 华为畅想享10和荣耀9x区别(畅享10系列对比)

    华为畅想享10和荣耀9x区别(畅享10系列对比)

  • 数据清单的组成包括(数据清单的作用)

    数据清单的组成包括(数据清单的作用)

  • 网易云歌单播放次数怎么算(网易云歌单播放量)

    网易云歌单播放次数怎么算(网易云歌单播放量)

  • 快手开启了免流怎么还用流量(快手开启了免流看视频需要流量嘛)

    快手开启了免流怎么还用流量(快手开启了免流看视频需要流量嘛)

  • 苹果拉黑短信显示什么(苹果短信拉黑了还会显示已送达吗)

    苹果拉黑短信显示什么(苹果短信拉黑了还会显示已送达吗)

  • 腾讯视频中的自动续费怎么关闭(腾讯视频的自动播放怎么取消)

    腾讯视频中的自动续费怎么关闭(腾讯视频的自动播放怎么取消)

  • 路由器开着手机搜不到(路由器开着手机能上网吗)

    路由器开着手机搜不到(路由器开着手机能上网吗)

  • 苹果计算机不见了(苹果计算机不见了怎么回事!)

    苹果计算机不见了(苹果计算机不见了怎么回事!)

  • 苹果卡槽弹不出来(苹果卡槽弹不出怎么办)

    苹果卡槽弹不出来(苹果卡槽弹不出怎么办)

  • 京东如何查看确认收货的时间(京东上面怎么查询订单到哪了)

    京东如何查看确认收货的时间(京东上面怎么查询订单到哪了)

  • 耳机上的按钮怎么用(耳机上的按钮怎么拆下来)

    耳机上的按钮怎么用(耳机上的按钮怎么拆下来)

  • 戴尔灵越5000和7000区别(戴尔灵越5000和成就3400)

    戴尔灵越5000和7000区别(戴尔灵越5000和成就3400)

  • 开着微信语音闹钟响吗(开着微信语音闹钟能正常的响吗苹果)

    开着微信语音闹钟响吗(开着微信语音闹钟能正常的响吗苹果)

  • 手机相机iso多少合适(手机相机iso最高)

    手机相机iso多少合适(手机相机iso最高)

  • 爱奇艺账户可以几个人用(爱奇艺账户可以几个设备登录)

    爱奇艺账户可以几个人用(爱奇艺账户可以几个设备登录)

  • 快手作品审核要多久(快手作品审核要多久通过)

    快手作品审核要多久(快手作品审核要多久通过)

  • 爱奇艺怎么收藏视频(爱奇艺怎么收藏一集视频)

    爱奇艺怎么收藏视频(爱奇艺怎么收藏一集视频)

  • 7p后置摄像头黑屏闪光灯也打不开(7p后置摄像头黑屏手电筒不亮)

    7p后置摄像头黑屏闪光灯也打不开(7p后置摄像头黑屏手电筒不亮)

  • Mac OS Big Sur怎么设置永不锁屏? Mac更改锁屏时间的技巧(macos big sur如何)

    Mac OS Big Sur怎么设置永不锁屏? Mac更改锁屏时间的技巧(macos big sur如何)

  • 笔记本电脑系统托盘中没有电池图标(笔记本电脑系统更新好不好)

    笔记本电脑系统托盘中没有电池图标(笔记本电脑系统更新好不好)

  • 待抵扣进项税额转入进项税额
  • 递延所得税负债转回怎么理解
  • 民办学校房屋要求
  • 固定资产折旧直接计入成本
  • 租赁企业可以开具电费发票吗
  • 季度应收账款周转天数是按多少天除
  • 货车的折旧年限怎么算
  • 个税申报收入额怎么填
  • 小企业会计准则和企业会计准则的区别
  • 小企业取得存货计量的原则
  • 捐赠现金计入什么科目
  • 电影院买电影票怎么买
  • 购入农产品的增值税率
  • 退回的留抵增值税怎么入账
  • 扣缴外国企业所得税分录
  • 增值税专票开具要求
  • 购置股权账务处理流程
  • 行政单位要纳税吗
  • 私营企业所得税是多少
  • 发票后附的销售清单怎么黏
  • 多计提的费用怎么调整
  • 商贸企业固定资产计提折旧吗
  • 监理费该谁出
  • 华为mate50耳机孔和充电口一样吗
  • macbookzen
  • 土地增值税计算例题
  • 企业会计师证是咋回事
  • 税务部门罚没收入计入什么科目
  • 长期股权投资转让需要交什么税
  • 房产证工本费怎么做账
  • msoxmled.exe是什么软件
  • 如何区分货币财富和收入
  • 现金支付医保报销
  • PHP:mcrypt_module_close()的用法_Mcrypt函数
  • PHP:mcrypt_get_key_size()的用法_Mcrypt函数
  • 新注册的外贸公司花名册
  • 售后回购方式销售商品如何确认收入
  • 税务局开出来的发票没问题吧?
  • 无形资产使用寿命的复核
  • 基础代谢
  • php sql 教程
  • 研发费用如何加计扣除何时申报
  • vi命令模式下的常用命令有哪些?
  • xi:xtreg命令
  • 织梦怎么导入数据库
  • 投资收益主要来源于
  • 销售产品收到现金的会计分录
  • 存货盘亏原因不明会计分录
  • 个人垫款公司将款支付个人算是资金回流吗
  • c语言中asin
  • redis的
  • 费用发票可以抵税吗
  • sql中聚合函数的用法
  • 以前年度损益调整结转到哪里
  • 固定资产处置净收入转入什么账户核算
  • 工程施工企业收入1750万,利润怎么算
  • 安全基金提取会计分录
  • 增值税纳税申报表怎么填
  • 滞纳金冲留底税额怎么算
  • 按季度报税怎么处理
  • 工商联络注册
  • 软件公司购买软件用于研发
  • centos vmware
  • 在unix系统中采用的页面置换
  • bios报警声
  • aow.exe是什么进程
  • win10预览在哪里
  • ubuntu18 设置静态ip
  • linuxsleep函数
  • winxp怎么自动开机
  • win10周年版
  • 了不起的女孩
  • 如何用虚拟号码打电话
  • 获取控件的值
  • javascript图片
  • js鼠标拖动窗口的做法
  • 海关编码更新
  • 登录上海电子税务局单位社保查询不到当月未交的
  • 购房税率是多少
  • 增值税发票开具后多长时间可在查询平台查询到?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设