[css] css 3d 动画,跟随鼠标移动做球形旋转

3 篇文章 0 订阅
订阅专栏
3 篇文章 0 订阅
订阅专栏
2 篇文章 0 订阅
订阅专栏

点击在线查看动画效果

在这里插入图片描述

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>3d动画</title>
  <style>
  body {
    background: #34495e;
    min-height: 100vh;
    margin: 0;
    padding: 0;
  }

  main {
    position: absolute;
    width: 300px;
    height: 300px;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    transform-style: preserve-3d;
    transform-origin: center center 260px;
  }

  div {
    position: absolute;
    width: 100%;
    height: 100%;
    transform-origin: center center 260px;
  }

  div:nth-child(1) {
    transform: rotateY(60deg);
    background: rgba(255, 0, 0, 0.95);
  }

  div:nth-child(2) {
    transform: rotateY(120deg);
    background: rgba(255, 242, 0, 0.95);
  }

  div:nth-child(3) {
    transform: rotateY(180deg);
    background: rgba(17, 255, 0, 0.95);
  }

  div:nth-child(4) {
    transform: rotateY(240deg);
    background: rgba(217, 0, 255, 0.95);
  }

  div:nth-child(5) {
    transform: rotateY(300deg);
    background: rgba(0, 42, 255, 0.95);
  }

  div:nth-child(6) {
    transform: rotateY(360deg);
    background: rgba(255, 132, 0, 0.95);
  }

  div:nth-child(7) {
    transform-origin: top center;
    transform: rotateY(0) rotateX(120deg);
    background: rgba(0, 0, 0, 0.95);
  }

  div:nth-child(8) {
    transform-origin: bottom center;
    transform: translateZ(520px) translateY(-100%) rotateX(60deg);
    background: rgba(241, 198, 198, 0.95);
  }

  div:nth-child(9) {
    transform-origin: bottom center;
    transform: rotateY(0) rotateX(-120deg);
    background: rgba(149, 213, 153, 0.95);
  }

  div:nth-child(10) {
    transform-origin: bottom center;
    transform: translateZ(520px) rotateX(120deg);
    background: rgba(0, 255, 177, 0.95);
  }
  </style>
</head>
<body>
<main id="main">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</main>
<script>
let rotateX = 10
let rotateY = 10;
let mainTag = document.getElementById('main')
// 添加鼠标移动监听事件,获取鼠标坐标转换为动画x,y轴滚动角度,使得动画旋转与鼠标移动绑定
document.addEventListener('mousemove', function (e) {
  rotateX = -((e.clientY * 360 / document.body.clientHeight) - 180);
  rotateY = ((e.clientX * 360 / document.body.clientWidth) - 180);
})
//动画执行代码
function animate() {
  mainTag.style.transform = `rotateX(${rotateX}deg) rotateY(${rotateY}deg)`
}
// 使用 requestAnimationFrame 按浏览器刷新率执行动画
(function animateLoop() {
  animate();
  window.requestAnimationFrame(animateLoop);
})();
</script>
</body>
</html>

说明

上述代码使用了 requestAnimationFrame

requestAnimationFrame 介绍请看我另一篇文章

写文章

分类专栏

  • css动画 2篇
  • js 3篇
  • 硬件 1篇
  • Android studio 9篇
  • HTML 3篇
  • CSS 3篇
  • PHP
  • Python
  • web 3篇
  • vue 1篇

最新评论

  • 小米路由器3 变砖 ttl 救砖,刷入padavan

    电子研究僧: 我后面不知道怎么又进去了,现在刷回了官方了表情包

  • 小米路由器3 变砖 ttl 救砖,刷入padavan

    he493822186: 我也遇到了,在putty串口设置里面把流控给关了

  • 小米路由器3 变砖 ttl 救砖,刷入padavan

    he493822186: 我也遇到这个,查半天终于解决了

  • 75行代码 完美实现图片完整展示 flex 横向瀑布流布局

    秋水不爱星河: 效果可以实现,但是刷新页面可能会导致页面元素出现重排,ctrl+r会刷新一次,但是shift+右上角刷新按钮会导致页面重新排列,位置发生变化。如果是不想让元素变化就把img.onload这一层去掉,里面的留下即可。因为这个东西是异步的,所以导致页面元素出现不按照顺序。今天我也遇到了这样的问题,但哈斯感谢你的这篇博客,让我也学到了很多东西。

  • vue 鼠标点击特效动画(css3动画),水波纹动画效果

    「已注销」: app.vue中引用了,没有看见效果捏

大家在看

  • Golang | Leetcode Golang题解之第424题替换后的最长重复字符
  • C语言 | Leetcode C语言题解之第423题从英文中重建数字
  • Java | Leetcode Java题解之第424题替换后的最长重复字符
  • Python | Leetcode Python题解之第423题从英文中重建数字
  • C++ | Leetcode C++题解之第423题从英文中重建数字

最新文章

  • 【html】【css】 6 种方式实现自定义文字描边
  • 75行代码 完美实现图片完整展示 flex 横向瀑布流布局
  • 【css3】径向渐变实现任意大小背景圆点
2020年7篇
2018年9篇

目录

目录

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家必不可少的玻璃钢雕塑绵阳市玻璃钢雕塑加工公司福建常见商场美陈售价河南学校校园玻璃钢雕塑楼盘玻璃钢人物雕塑电话多少苏州商场大厅美陈河北步行街玻璃钢雕塑批发卫辉玻璃钢雕塑定制深圳走廊商场美陈报价广州玻璃钢抽象雕塑价格白云区玻璃钢雕塑价格四川玻璃钢雕塑仿真牛云南环保玻璃钢雕塑方法上海园林玻璃钢雕塑定制克拉玛依商场美陈山西朔州玻璃钢抗战主题雕塑像河南花朵玻璃钢雕塑定做郑州个性化玻璃钢雕塑设计玻璃钢雕塑曲阳厂家玻璃钢花盆制作模具张家口卡通玻璃钢雕塑公司广州逼真玻璃钢面包雕塑商场里的美陈是什么样的泰州商场美陈策划四川公园玻璃钢雕塑供应商吉林卡通玻璃钢雕塑制作常州玻璃钢雕塑哪里卖商场绿植创意美陈上海商场主题创意商业美陈费用贵州玻璃钢雕塑小品香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化