首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

3d滚动球体js动画代码

以下是一个使用 JavaScript 和 Three.js 库实现 3D 滚动球体的简单动画代码示例:

代码语言:txt
复制
<!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>3D 滚动球体</title>
  <style>
    body {
      margin: 0;
      overflow: hidden;
    }
  </style>
</head>

<body>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
  <script>
    // 创建场景
    const scene = new THREE.Scene();

    // 创建相机
    const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
    camera.position.z = 5;

    // 创建渲染器
    const renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    document.body.appendChild(renderer.domElement);

    // 创建球体几何体和材质
    const geometry = new THREE.SphereGeometry(1, 32, 32);
    const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });

    // 创建球体网格并添加到场景
    const sphere = new THREE.Mesh(geometry, material);
    scene.add(sphere);

    // 动画函数
    function animate() {
      requestAnimationFrame(animate);

      // 使球体沿 x 轴滚动
      sphere.rotation.x += 0.01;
      sphere.rotation.y += 0.01;

      renderer.render(scene, camera);
    }

    animate();

    // 监听窗口大小变化,调整渲染器尺寸
    window.addEventListener('resize', () => {
      camera.aspect = window.innerWidth / window.innerHeight;
      camera.updateProjectionMatrix();
      renderer.setSize(window.innerWidth, window.innerHeight);
    });
  </script>
</body>

</html>

基础概念:

  • Three.js:这是一个用于在网页上创建和显示 3D 图形的 JavaScript 库。
  • 场景(Scene):包含所有要渲染的对象。
  • 相机(Camera):决定观察场景的角度和范围。
  • 渲染器(Renderer):负责将场景和相机视图转换为图像。

优势:

  • 可以轻松创建复杂的 3D 效果。
  • 跨平台兼容性好,适用于各种浏览器。

类型:

  • 根据使用的几何体和材质的不同,可以创建多种类型的 3D 对象。

应用场景:

  • 游戏开发。
  • 数据可视化。
  • 网页中的交互式 3D 展示。

常见问题及解决方法:

  • 性能问题:如果场景过于复杂导致卡顿,可以减少几何体的面数、使用纹理压缩等方法优化。
  • 兼容性问题:确保浏览器支持 WebGL,对于不支持的浏览器,可以提供降级方案或提示用户更新浏览器。

希望这个示例对你有帮助!如果你还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

17分29秒

APICloud AVM多端开发 | 生鲜电商App开发商品列表,购物车,城市列表开发(二)

领券