前端css/less绕椭圆轨道旋转动画 带遮挡效果 3D

这篇具有很好参考价值的文章主要介绍了前端css/less绕椭圆轨道旋转动画 带遮挡效果 3D。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

css动画 椭圆上得点转圈,大屏开发,前端,css,less

效果如图,多个物体在轨道上绕中心物体旋转,当旋转到物体后面时将被遮挡。主要使用css实现,为了简化代码,引入less进行处理。

html结构

// 中心物体
<div class="center">center</div>
// 轨道
<div class="orbit">
	// 轨道上的物体
	<div class="item item1">1</div>
	<div class="item item2">2</div>
	<div class="item item3">3</div>
	<div class="item item4">4</div>
  <div class="item item5">5</div>
  <div class="item item6">6</div>
</div> 

less代码

本质上是使用动画控制轨道带动内部的物体进行旋转,计算出每个物体在椭圆轨道上的位置,使用绝对定位放置物体。由于轨道上物体有多个,代码做了椭圆位置等分计算处理,使用less根据轨道大小和物体个数动态计算各个物体的位置,要添加或减少物体个数只需要在html上添加相应类名的物体并修改less代码中的@num变量即可。
遮挡效果是通过z-index制造视觉差来实现的。

// 轨道旋转动画b
@keyframes spin {
  0% {
    transform: scaleY(0.5) rotate(0deg);
  }
  100% {
    transform: scaleY(0.5) rotate(360deg);
  }
}
@keyframes anti-spin {
  0% {
    transform: rotate(0deg) scaleY(2) scale(1);
  }
  100% {
    transform: rotate(-360deg) scaleY(2) scale(1);
  }
}
// 轨道宽高
@w1: 200px;
@h1: 200px;
@r: @w1 / 2;
// 元素宽高
@w2: 20px;
@h2: 20px;
// 动画时间
@time: 30s;
// 元素个数
@num: 6;
.locateItem(@n, @i: 1) when (@i =< @n) {
  .item@{i} {
    @m: pi() / 180 * round(360 / @n) * @i;
    left: @r + @r * sin(@m) - @w2 / 2;
    bottom: @r + @r * cos(@m) - @h2 / 2;
  }
  .locateItem(@n, (@i + 1));
}
// 旋转中心
.center {
  z-index: 999;
  position: absolute;
  top: 40px;
  left: 120px;
  width: 80px;
  height: 80px;
  background: yellow;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}
// 轨道及元素
.orbit {
  z-index: 900;
  position: absolute;
  top: 10px;
  left: 50px;
  width: @w1;
  height: @h1;
  border-radius: 50%;
  border: 2px solid black;
  z-index: 900;
  animation: spin @time infinite linear;
  .item {
    display: flex;
    justify-content: center;
    align-items: center;
    background: red;
    border-radius: 50%;
    width: @w2;
    height: @h2;
    animation: anti-spin @time infinite linear;
    color: #fff;
    position: absolute;
    text-align: center;
  }
  //   对每个元素进行定位
  .locateItem(@num);
}
// 鼠标悬停 动画暂停
.orbit:hover,
.orbit:hover .item,
.orbit .item:hover {
  animation-play-state: paused;
}

可将代码复制到codepen中进行预览:
https://codepen.io/pen/文章来源地址https://www.toymoban.com/news/detail-771900.html

到了这里,关于前端css/less绕椭圆轨道旋转动画 带遮挡效果 3D的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenLayers入门,OpenLayers实现地图原地旋转动画效果

    专栏目录: OpenLayers入门教程汇总目录 OpenLayers实现地图原地旋转动画效果,顾名思义,就是站在原地转一圈。 使用npm安装依赖 使用Yarn安装依赖 vue项目使用请参考这篇文章:

    2024年02月13日
    浏览(36)
  • 【CSS动画02--卡片旋转3D】

    css动画02--旋转卡片3D 当鼠标移动到中间的卡片上会有随着中间的Y轴进行360°的旋转,以下是几张图片的介绍,上面是鄙人自己录得一个供大家参考的小视频🤭

    2024年02月12日
    浏览(26)
  • JavaScript+canvas实现一个旋转的3D球动画效果

    1. 获取Canvas元素和设置初始参数 这部分代码主要是获取Canvas元素,并根据设备的DPI进行缩放。然后,定义了一些全局变量,包括Canvas的宽度、高度、球体旋转的角度和存储所有点的数组。 2. 定义一些常量 这部分代码定义了一些常量,如点的数量、点的半径、球半径等。 3.定

    2024年01月18日
    浏览(36)
  • JavaScript、Vue实现大数据大屏展示3D旋转动画效果

    最近在写一些数据大屏的时候客户需要做个3D旋转动效的效果,简单整理之后写了一个小demo做下记录,先看一下效果: 当点击next的时候,整个模块旋转切换到下个菜单,点击prev的时候也可以切换到上一个菜单效果。 首先我们先构建一个大体的dom结构,如下: 编写基本的css样

    2024年02月11日
    浏览(27)
  • 前端三大Css处理器之Less

    Less是Css预处理器之一,分别有Sass、Less、Stylus这三个。         Less https://lesscss.org/         Less 是用JavaScript编写的,事实上,Less是一个JavaScript库,他通过混合、变量、嵌套和规则设置循环扩展了原生普通Css的功能。 Less的少数缺点之一是它 不支持函数 。 Less的语法与Scss十

    2024年02月10日
    浏览(33)
  • 【CSS】旋转中的视差效果

    在这个示例中,我们使用 grid-template 属性来定义网格的结构。通过使用字符串,我们指定了网格的行和列,以及它们的名称。每一行和列都可以具有不同的大小和单位。 通过给每个网格项设置相应的 grid-area 值,我们将它们放置在指定的区域中。这里的区域名称对应于 grid-

    2024年02月13日
    浏览(49)
  • 前端:css less语法 /deep/ 深度影响的用法

    css中通常会在 style 标签内添加 scoped 来避免父组件对子组件的影响,添加了之后只能修改当前组件的样式。 这样做的原理是通过在打包的时候给每个样式都添加一个独一无二的hash值,从而避免父组件对子组件的样式的影响。 添加后控制台显示的样式就会像这样:     设置

    2024年02月12日
    浏览(29)
  • 西北乱跑娃 -- CSS动态旋转果冻效果

    2024年02月15日
    浏览(42)
  • 基于css实现动画效果

            本文将会基于css,实现各种动画效果,接下来会从简单几个例子入手。 效果 效果展示

    2024年01月23日
    浏览(39)
  • css-动画效果学习示例

    阴影 x-轴   y-轴   模糊度  颜色   (正负值可以表示角度问题)  可以加多个阴影 内置阴影 transition  可以添加动画延迟效果 向z轴缩进,开启透视respective 触发旋转效果 学习来源 :动画属性_哔哩哔哩_bilibili

    2024年01月19日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包