css3加js做一个简单的3D行星运转效果实例代码

yizhihongxing

下面是一个简单的 3D 行星运转效果的实例代码,使用了 CSS3 和 JavaScript。

HTML 结构

<div class="container">
  <div class="planet"></div>
</div>

上述代码中,我们创建了一个容器 div 元素,用于容纳行星。我们在容器中创建了一个 div 元素,用于表示行星。

CSS 样式

.container {
  width: 300px;
  height: 300px;
  perspective: 1000px;
}

.planet {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #ffcc00;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotateY(0deg) rotateZ(0deg);
  animation: rotate 10s linear infinite;
}

@keyframes rotate {
  0% {
    transform: translate(-50%, -50%) rotateY(0deg) rotateZ(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotateY(360deg) rotateZ(360deg);
  }
}

上述代码中,我们将容器的宽度和高度设置为 300px,以使其具有一定的大小。我们使用 perspective 属性来定义 3D 效果的视角。我们将行星的宽度和高度设置为 50px,以使其具有一定的大小。我们使用 border-radius 属性来定义行星的圆角。我们将其 position 属性设置为 absolute,以使其相对于容器进行定位。我们使用 transform 属性来定义行星的位置和旋转角度。我们使用 animation 属性来定义行星的旋转动画。我们使用 @keyframes 规则来定义旋转动画的关键帧。

JavaScript 代码

var planet = document.querySelector('.planet');
var mouseX = 0;
var mouseY = 0;

document.addEventListener('mousemove', function(event) {
  mouseX = event.clientX;
  mouseY = event.clientY;
});

setInterval(function() {
  var centerX = window.innerWidth / 2;
  var centerY = window.innerHeight / 2;
  var deltaX = mouseX - centerX;
  var deltaY = mouseY - centerY;
  var percentX = deltaX / centerX;
  var percentY = deltaY / centerY;
  var degY = percentX * 180;
  var degZ = -percentY * 180;
  planet.style.transform = 'translate(-50%, -50%) rotateY(' + degY + 'deg) rotateZ(' + degZ + 'deg)';
}, 10);

上述代码中,我们使用 document.querySelector() 方法获取行星元素。我们使用 document.addEventListener() 方法来监听鼠标移动事件,以获取鼠标的位置。我们使用 setInterval() 方法来定时更新行星的位置和旋转角度。我们计算鼠标相对于窗口中心的偏移量,并将其转换为旋转角度。我们使用行星元素的 style.transform 属性来设置行星的位置和旋转角度。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:css3加js做一个简单的3D行星运转效果实例代码 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 微信小程序实现指定显示行数多余文字去掉用省略号代替

    要实现微信小程序的指定显示行数多余文字去掉用省略号代替,可以使用以下步骤: 1. 在WXSS中使用line-clamp属性 首先,在WXSS中使用line-clamp属性来控制文本显示的行数。line-clamp需要指定一个整数值来表示显示行数。例如,要显示3行文本,可以设置line-clamp: 3;。 .text { display: -webkit-b…

    css 2023年6月10日
    00
  • HTML标记第1/2页

    HTML标记第1/2页的完整攻略,分为以下几个步骤: 1. 了解HTML基础知识 HTML是网页开发基础语言,全称为超文本标记语言 (Hyper Text Markup Language) HTML标记由尖括号包围的元素 (elements) 构成,常见的元素包括标题 (h1~h6)、段落 (p)、链接 (a)、图片 (img)、列表 (ul/ol) 等等 …

    css 2023年6月10日
    00
  • Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面

    如何使用 Bootstrap 编写一个兼容主流浏览器的受众巨幕式风格页面呢?下面是一个完整的攻略。 步骤一:加载Bootstrap 在标签中添加以下的代码来加载 Bootstrap: <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap…

    css 2023年6月9日
    00
  • 通过seajs实现JavaScript的模块开发及按模块加载

    通过seajs实现JavaScript的模块开发及按模块加载,主要包含以下几个步骤: 引入seajs模块: 在HTML页面中引入seajs模块,可以从官网seajs.org下载。 <script src="seajs/sea.js"></script> 定义模块: // 定义一个模块 define(function…

    css 2023年6月10日
    00
  • HTML 标签解释大全

    HTML 标签解释大全是一个结合了 HTML 标签及其语义和用法的一份详细说明文档。下面是对该攻略的完整讲解: 1. 概述 HTML(超文本标记语言)是一种标记语言,它用来描述网页的结构以及展示形式。HTML 标签是组成 HTML 网页的基本元素。HTML 标签包含标记名称和必要的属性,有些标签是成对出现,中间包含了所需要显示的信息。HTML 标签可以分为标…

    css 2023年6月9日
    00
  • 固定在网页右侧的浮动层实现代码

    实现在网页右侧浮动的层,使用的是position属性。 在HTML中创建浮动层 首先在HTML文件的<body>标签结束前添加如下代码 <div class="float-layer">Hello world</div> 其中,我们的浮动层被指定为float-layer。我们将在CSS部分设置其样式。 …

    css 2023年6月10日
    00
  • CSS整体布局声明的一些使用技巧

    CSS整体布局是指通过一些特定的属性和技巧,实现网页布局的方式。下面我将为您介绍几种常用的CSS整体布局框架和其使用技巧。 1. CSS Grid布局 CSS Grid布局是一种二维网格系统,通过定义行和列以及网格单元格的大小和位置,实现网页布局。只需要对父元素设置display: grid;属性即可。例如: .grid-container { displa…

    css 2023年6月10日
    00
  • JS模拟并美化的表单控件完整实例

    下面是JS模拟并美化的表单控件完整实例的攻略: 1. 了解需求 在开始编码之前,我们需要了解实现的需求,明确要完成以下任务: 模拟select、radio、checkbox等常见的表单控件,实现其基本功能 所有表单控件需要有美观的样式效果 2. 分析思路 在了解需求之后,我们需要进一步分析如何实现。 对于select控件的模拟,我们可以利用HTML的原生se…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部