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

下面是一个简单的 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日

相关文章

  • 利用CSS3实现圆角的outline效果的教程

    以下是实现利用CSS3实现圆角的outline效果的教程: 1. outline和border的异同 首先,需要了解outline和border的异同。 outline outline是一种单独的样式属性,用来为一个元素添加轮廓,不影响元素的位置和大小,也不一定为矩形。 它的语法如下: outline: [outline-color] [outline-st…

    css 2023年6月10日
    00
  • CSS页面布局中HTML结构化

    当我们在进行CSS页面布局时,HTML结构化的清晰和合理是非常重要的。这意味着我们应该将我们的页面标记成语义正确的HTML元素,并以正确的方式嵌套它们。以下是CSS页面布局中HTML结构化的完整攻略: 1. 分解你的网站并对其进行规划 在开始编写HTML代码之前,您应该先花些时间规划您的网站外观。如果您已有设计图,先将其细分为版块并确定每个版块的内容。如无,…

    css 2023年6月9日
    00
  • js实现背景图自适应窗口大小

    下面是“js实现背景图自适应窗口大小”的完整攻略: 1. 确定背景图的样式 在实现背景图自适应窗口大小的过程中,我们需要先给背景图指定一些样式。最常用的方法是将背景图作为页面的一部分,利用CSS中的background属性进行样式设置。 body { background: url("bg.jpg") no-repeat center c…

    css 2023年6月9日
    00
  • Angular动画实现的2种方式以及添加购物车动画实例代码

    Angular动画是Angular框架中一个非常重要且强大的特性,可以帮助我们轻松实现各种动画效果,提升界面交互的体验。本文将详细介绍Angular动画实现的两种方式,并提供添加购物车动画实例代码,方便大家上手操作。 Angular动画实现的2种方式 Angular动画可以使用两种方式来实现:通过使用Angular内置的动画模块和使用第三方动画库。 1. 使…

    css 2023年6月10日
    00
  • DIV+CSS通用样式布局实例代码

    DIV+CSS通用样式布局实例代码 DIV+CSS布局是一种常见的网页布局方式,它使用HTML的<div>元素和CSS样式来控制网页的布局和样式。以下是一些常见的DIV+CSS布局技巧和示例代码: 1. 盒子模型 盒子模型是指HTML元素由内容、内边距、边框和外边距组成的模型。以下是盒子模型的示意图: +———————…

    css 2023年5月18日
    00
  • CSS 设置滚动条样式的实例代码

    下面是详细讲解“CSS 设置滚动条样式的实例代码”的完整攻略: 1. CSS 设置滚动条样式的原理 在 CSS 中,我们可以通过 ::-webkit-scrollbar 伪元素选择器以及一些属性来调整滚动条的样式。 2. 滚动条样式基础 第一步,我们可以使用 ::-webkit-scrollbar 选择器来选中滚动条。比如说,我们可以改变滚动条的宽高、颜色等…

    css 2023年6月13日
    00
  • HTML5中的Scoped属性使用实例

    下面我将详细讲解一下“HTML5中的Scoped属性使用实例”的完整攻略。 简介 scoped属性是HTML5中<style>标签新增的一个属性,表示该样式仅在当前标签内生效。它的使用可以很方便地实现针对特定元素的样式控制。 语法 scoped属性没有取值,只需要在<style>标签中添加该属性即可,例如: <style sco…

    css 2023年6月10日
    00
  • Vue.js中NaiveUI组件文字渐变的实现

    下面是“Vue.js中NaiveUI组件文字渐变的实现”的完整攻略。 1. 引入NaiveUI组件库 在Vue.js中使用NaiveUI组件库需要先安装NaiveUI,可以通过npm进行安装: npm install naive-ui 然后,在项目的入口文件(一般是main.js)中引入NaiveUI: import { createApp } from ‘…

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