位置: IT常识 - 正文

css动画效果(css动画效果代码)

编辑:rootadmin
css动画效果 动画1(沿着椭圆转动)

推荐整理分享css动画效果(css动画效果代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:css动画效果代码,css动画效果网站,css动画效果旋转,css动画效果 位置移动,css动画效果网站,css动画效果 位置移动,css动画效果代码,css动画效果代码,内容如对您有帮助,希望把文章链接给更多的朋友!

 其实是个2D转动,只不过咱们设置椭圆,然后加上scale缩放(近大远小),看上去就是3D效果

代码:

<!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>动画1</title></head><body> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { width: 100vw; height: 100vh; position: relative; } /* 位置 */ .container { position: absolute; width: 800px; height: 180px; top: 20%; left: 50%; transform: translateX(-60%); /* border: 1px solid red; */ } /* 动画的容器(椭圆) */ .box { width: 100%; height: 100%; position: relative; /* border: 1px solid blue; */ box-sizing: border-box; border-radius: 50%; } /* 椭圆线 */ .border { position: absolute; width: 800px; height: 180px; top: 65px; left: 60px; border: 1px solid #0084ff; box-sizing: border-box; border-radius: 50%; } /* 以下是转动的动画 */ .circle { width: 200px; height: 130px; position: absolute; z-index: 999; } .circle img { width: 100%; height: 100%; } .circle1 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -5.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) 0s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) 0s infinite alternate; } .circle2 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -7.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -2s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -2s infinite alternate; } .circle3 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -9.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -4s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -4s infinite alternate; } .circle4 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -11.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -6s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -6s infinite alternate; } .circle5 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -13.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -8s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -8s infinite alternate; } .circle6 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -15.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -10s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -10s infinite alternate; } .circle7 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -17.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -12s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -12s infinite alternate; } .circle8 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -19.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -14s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -14s infinite alternate; } .circle9 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -21.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -16s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -16s infinite alternate; } .circle10 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -23.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -18s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -18s infinite alternate; } .circle11 { animation: animX 11s cubic-bezier(0.36, 0, 0.64, 1) -25.5s infinite alternate, animY 11s cubic-bezier(0.36, 0, 0.64, 1) -20s infinite alternate, scale 22s cubic-bezier(0.36, 0, 0.64, 1) -20s infinite alternate; } @keyframes animX { 0% { left: -4%; } 100% { left: 96%; } } @keyframes animY { 0% { top: -4%; } 100% { top: 96%; } } @keyframes scale { 0% { transform: scale(0.4); opacity: 0.5; } 50% { transform: scale(1); opacity: 1; } 100% { transform: scale(0.4); opacity: 0.5; } } </style> <div class="container"> <div class="box"> <div class="circle circle1"> <img src="./img/步数.png" alt=""> </div> <div class="circle circle2"> <img src="./img/胆固醇.png" alt=""> </div> <div class="circle circle3"> <img src="./img/肺呼吸.png" alt=""> </div> <div class="circle circle4"> <img src="./img/尿酸.png" alt=""> </div> <div class="circle circle5"> <img src="./img/睡眠.png" alt=""> </div> <div class="circle circle6"> <img src="./img/体脂.png" alt=""> </div> <div class="circle circle7"> <img src="./img/跳绳.png" alt=""> </div> <div class="circle circle8"> <img src="./img/握力.png" alt=""> </div> <div class="circle circle9"> <img src="./img/心率.png" alt=""> </div> <div class="circle circle10"> <img src="./img/血糖.png" alt=""> </div> <div class="circle circle11"> <img src="./img/血氧.png" alt=""> </div> <!-- 椭圆线 --> <div class="border"></div> </div> </div></body></html>

1. scale去设置的总时间(也就是转一圈用的时间), 这里设置 22秒

css动画效果(css动画效果代码)

2. X轴和Y轴用的时间是一样的,都为总时间的一半,也就是11秒

3. 相差的时间是 总时间/图片的个数  这里也就是 22/11 = 2秒

4.  X轴和Y轴的延时时间相差 11/2 = 5.5秒

可以把代码拷贝过去,修改一下试试就可以啦 

动画2 (旋转木马特效)

 代码:

<!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>动画2</title></head><body> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { width: 100vw; height: 100vh; position: relative; } .container { position: absolute; width: 1000px; height: 500px; top: 15%; left: 50%; transform: translateX(-50%); z-index: 999; display: flex; justify-content: center; align-items: center; perspective: 1000px; } .box { width: 150px; height: 150px; position: relative; transform-style: preserve-3d; animation: run 11s linear infinite; } .circle { position: absolute; top: 0; left: 0; width: 150px; height: 150px; } /*设置图像大小、边框、圆角、位置*/ .circle img { width: 150px; height: 200px; border: 1px solid #ccc; border-radius: 5px; box-sizing: border-box; } .circle1 { transform: translateZ(500px); } .circle2 { transform: rotateY(36deg) translateZ(500px); } .circle3 { transform: rotateY(72deg) translateZ(500px); } .circle4 { transform: rotateY(108deg) translateZ(500px); } .circle5 { transform: rotateY(144deg) translateZ(500px); } .circle6 { transform: rotateY(180deg) translateZ(500px) ; } .circle7 { transform: rotateY(216deg) translateZ(500px); } .circle8 { transform: rotateY(252deg) translateZ(500px); } .circle9 { transform: rotateY(288deg) translateZ(500px); } .circle10 { transform: rotateY(324deg) translateZ(500px); } @keyframes run { 0% { transform: rotateY(0); } 100% { transform: rotateY(360deg); } } </style> <div class="container"> <div class="box"> <div class="circle circle1"> <img src="./img/1.jpg" alt=""> </div> <div class="circle circle2"> <img src="./img/2.jpg" alt=""> </div> <div class="circle circle3"> <img src="./img/3.jpg" alt=""> </div> <div class="circle circle4"> <img src="./img/4.jpg" alt=""> </div> <div class="circle circle5"> <img src="./img/5.jpg" alt=""> </div> <div class="circle circle6"> <img src="./img/6.jpg" alt=""> </div> <div class="circle circle7"> <img src="./img/7.jpg" alt=""> </div> <div class="circle circle8"> <img src="./img/8.jpg" alt=""> </div> <div class="circle circle9"> <img src="./img/9.jpg" alt=""> </div> <div class="circle circle10"> <img src="./img/10.jpg" alt=""> </div> </div> </div></body></html>动画3 (沿X、Y、Z轴自转)

<!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>动画3</title></head><body> <style> * { padding: 0; margin: 0; box-sizing: border-box; } body { width: 100vw; height: 100vh; display: flex; justify-content: center; align-items: center; } .container img { width: 150px; height: 150px; margin: 0 20px; } .container > img:nth-of-type(1) { animation: rotate1 5s linear infinite; } .container > img:nth-of-type(2) { animation: rotate2 5s linear infinite; } .container > img:nth-of-type(3) { animation: rotate3 5s linear infinite; } /* 绕着Y轴转 */ @keyframes rotate1 { 0% { transform: rotateY(0); } 100% { transform: rotateY(360deg); } } /* 绕着X轴转 */ @keyframes rotate2 { 0% { transform: rotateX(0); } 100% { transform: rotateX(360deg); } } /* 绕着Z轴转 */ @keyframes rotate3 { 0% { transform: rotateZ(0); } 100% { transform: rotateZ(360deg); } } </style> <div class="container"> <img src="./img/1.png" alt=""> <img src="./img/2.jpg" alt=""> <img src="./img/3.jpg" alt=""> </div></body></html> 动画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>Document</title></head><body> <style> * { padding: 0; margin: 0; box-sizing: border-box; } .box { width: 500px; height: 500px; border: 1px solid red; margin: 100px 0 0 100px; position: relative; overflow: hidden; } .move { width: 30%; height: 70%; border: 1px solid blue; border-radius: 10px; position: absolute; right: -150px; top: 15%; } #btn { position: absolute; top: 50%; right: 0; transform: translateY(-50%); } .show { animation: rotate1 0.4s linear; /* 动画执行一次 */ animation-iteration-count: 1; /* 停留在最后一帧 */ animation-fill-mode: both; } .hide { animation: rotate2 0.4s linear; /* 动画执行一次 */ animation-iteration-count: 1; /* 停留在最后一帧 */ animation-fill-mode: both; } /* 向左移动 */ @keyframes rotate1 { 0% { transform: translateX(0); } 100% { transform: translateX(-150px); } } /* 向右移动 */ @keyframes rotate2 { 0% { transform: translateX(-150px); } 100% { transform: translateX(0); } } </style> <div class="box"> <div class="move"></div> <button id="btn"></button> </div> <script> // DOM.classList -> 返回一个元素的类属性的实时 DOMTokenList 集合。 // DOM.classList.add('class1', 'class2', 'class3') // 添加一个或多个类名 // DOM.classList.remove('class1', 'class2', 'class3') // 删除一个或多个类名 // DOM.classList.toggle('class1', 'class2', 'class3') // 切换类名(有则移除,没有则添加(切换效果)) let flag = true // true -> 点击展示, false -> 点击隐藏 const $ = name => document.querySelector(name) $('#btn').innerHTML = '点击展开' $('#btn').onclick = () => { if (flag) { $('.move').classList.remove('hide'); $('.move').classList.add('show'); setTimeout(() => { $('#btn').innerHTML = '点击收起' }, 400) } else { $('.move').classList.remove('show'); $('.move').classList.add('hide'); setTimeout(() => { $('#btn').innerHTML = '点击展开' }, 400) } flag = !flag } </script></body></html>
本文链接地址:https://www.jiuchutong.com/zhishi/299720.html 转载请保留说明!

上一篇:图像分类方法总结(图像的分类方法及具体的分类)

下一篇:计算机视觉——图像视觉显著性检测(计算机视觉的应用)

  • 微信绑定手机号频繁多久恢复(微信绑定手机号不用了怎么登录微信)

    微信绑定手机号频繁多久恢复(微信绑定手机号不用了怎么登录微信)

  • 微博怎么把人移到分组(微博怎么把人移除分组)

    微博怎么把人移到分组(微博怎么把人移除分组)

  • 电脑那个键盘切换中英文(电脑那个键盘切换拼音)

    电脑那个键盘切换中英文(电脑那个键盘切换拼音)

  • 智能手机与可穿戴移动设备中采用什么功能进行移动支付(智能手机可以连接电脑吗)

    智能手机与可穿戴移动设备中采用什么功能进行移动支付(智能手机可以连接电脑吗)

  • 华为哪几款手机可以开空调(华为哪几款手机支持无线充电)

    华为哪几款手机可以开空调(华为哪几款手机支持无线充电)

  • 软件在手机桌面上找不到(软件在手机桌面没有快捷显示怎么办)

    软件在手机桌面上找不到(软件在手机桌面没有快捷显示怎么办)

  • 电脑ua啥意思(电脑ul是什么意思)

    电脑ua啥意思(电脑ul是什么意思)

  • 手机号有12位数的吗(手机号码有12位的嘛)

    手机号有12位数的吗(手机号码有12位的嘛)

  • 电脑的开始键在哪里(电脑的开始键在右上角怎么回事)

    电脑的开始键在哪里(电脑的开始键在右上角怎么回事)

  • airpods怎么关机(airpods怎么关机开机)

    airpods怎么关机(airpods怎么关机开机)

  • 华为手机暂不支持此类文件(华为手机暂不支持HDR视频)

    华为手机暂不支持此类文件(华为手机暂不支持HDR视频)

  • 三星s10翻新机怎么辨别(三星翻新手机)

    三星s10翻新机怎么辨别(三星翻新手机)

  • 手机右上角有个锁是什么意思(手机右上角有个像指南针的小图标是什么)

    手机右上角有个锁是什么意思(手机右上角有个像指南针的小图标是什么)

  • 小米cc9pro需要贴钢化膜吗(小米cc9pro出厂带屏幕膜吗)

    小米cc9pro需要贴钢化膜吗(小米cc9pro出厂带屏幕膜吗)

  • vivo有没有5g手机(vivo有5g吗)

    vivo有没有5g手机(vivo有5g吗)

  • 图片逆光怎么修(照片逆光)

    图片逆光怎么修(照片逆光)

  • 荣耀9有人脸识别功能吗(荣耀有人脸识别怎么关机)

    荣耀9有人脸识别功能吗(荣耀有人脸识别怎么关机)

  • 怎么把图片转成文档(怎么把图片转成cad图)

    怎么把图片转成文档(怎么把图片转成cad图)

  • m11蓝牙音箱使用说明(m11蓝牙音箱四个按键使用说明书)

    m11蓝牙音箱使用说明(m11蓝牙音箱四个按键使用说明书)

  • pxe oprom是什么意思(pxe rom什么意思)

    pxe oprom是什么意思(pxe rom什么意思)

  • ipad air3支持快充吗(ipadair3可以用快充充电吗)

    ipad air3支持快充吗(ipadair3可以用快充充电吗)

  • 微信免提现怎么申请(微信免提现怎么现在没有5000的额度了呢)

    微信免提现怎么申请(微信免提现怎么现在没有5000的额度了呢)

  • Win10 预览版 21286更新了什么?Win10 预览版 21286更新介绍(windows 10预览版)

    Win10 预览版 21286更新了什么?Win10 预览版 21286更新介绍(windows 10预览版)

  • asmproserver.exe是什么进程 asmproserver进程信息查询

    asmproserver.exe是什么进程 asmproserver进程信息查询

  • NFC 音乐墙 (不限手机)[web 接口服务实现-折腾记录](nfcmp3)

    NFC 音乐墙 (不限手机)[web 接口服务实现-折腾记录](nfcmp3)

  • 慕那尔山区的茶园,印度喀拉拉邦 (© SvitlanaBelinska/iStock/Getty Images Plus)(那慕尔省)

    慕那尔山区的茶园,印度喀拉拉邦 (© SvitlanaBelinska/iStock/Getty Images Plus)(那慕尔省)

  • 工资薪金和工资薪金总额区别
  • 计提印花税会计
  • 代开普通发票需提供哪些材料
  • 装修行业小规模纳税人增值税专票
  • 3%简易征收范围
  • 销售支付产品是什么意思
  • 购房补贴退契税3个月没到账
  • 如何规范填写费用表格
  • 出口不报关账务处理
  • 支票遗失声明书范文
  • 金融服务利息
  • 收到供应商违约金 发票
  • 一般开发间接费
  • 土地投资入股交什么税
  • 由母公司承担子公司债务的财务处理怎么做?
  • 个税申报与社保申报一定是一致的么
  • 剪头开发票
  • 包装物报废收回残料
  • 不同行业的单位名称
  • 固定资产抵扣进项
  • 借应收账款贷应收账款是什么意思
  • 营改增服务业税负下降
  • word从一台电脑考到另一台电脑格式不一致怎么解决
  • 研发支出怎么做账
  • 分期服务费是啥
  • 无法安装字体,显示字体无效win10
  • 生产车间报表表格图片
  • PHP:pg_transaction_status()的用法_PostgreSQL函数
  • 增值税专用发票的税率是多少啊
  • 应收账款转让的限制约定
  • 出口退免税备案
  • 对于个体工商户不需要满足累计经营三个月以上的条件
  • 蜜蜂皇vs
  • thinkphp yii
  • 一般纳税人无票收入怎么填申报表
  • 演员片酬要分给经纪公司吗
  • unrar解压命令
  • 工程款清账的句子发朋友圈
  • 集团对子公司拨款的规定
  • 用python写
  • 汽车折旧年限及年限
  • 电子税务局已申报的财务报表怎么修改
  • python中类的属性
  • 全年一次性奖金并入或单独哪个好
  • 实缴资本需要存放多久
  • 弥补以前年度亏损报表怎么填
  • 中小企业的判定标准
  • 审计库存现金盘点表
  • 免税发票怎么抵扣
  • 工程施工人工费如何结转
  • 先清卡后报税影响申报吗
  • 案例分析应收账款管理存在的问题
  • 生产的半成品怎么做分录
  • mysql的基础知识
  • win10系统环境设置
  • linux三个主要部分及功能
  • ubuntu系统升级命令
  • 微软平板电脑surface pro2参数
  • alp是什么文件
  • win10系统应用和浏览器控制需要启用吗
  • Linux系统下以模块方式安装卸载文件系统
  • centos 常用命令教程
  • 如何关闭windows密钥
  • 五种修改方法
  • win7共享失败
  • 宽带连接错误628win10
  • 菜单按钮是什么
  • jquery地址
  • ie版本过低怎么升级win7
  • iframe移动端自适应
  • 段正淳算正面人物吗
  • 用javascript写表单代码
  • 简单使用23 款华为s E可以吗
  • js新开一个窗口
  • nginx 执行shell
  • javascript精度问题的原因
  • 欢迎使用本公司智能语音电动车mp3
  • eclipse自动生成
  • 税务机关的情况说明
  • 江苏税务ukey怎么申请
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设