three实现可交互炫酷三维圣诞树丝带小球动画效果代码
代码语言:html
所属分类:三维
代码描述:three实现可交互炫酷三维圣诞树丝带小球动画效果代码,点击click可发射小球。
代码标签: three 交互 炫酷 三维 圣诞树 丝带 小球 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
html,
body {
padding: 0;
margin: 0;
}
.container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #040229;
}
.title {
position: fixed;
top: 75%;
left: 50%;
transform: translate(-50%, -50%);
font-family: monospace;
user-select: none;
pointer-events: none;
color: white;
}
</style>
</head>
<body translate="no">
<div class="container">
<canvas id="tree-canvas"></canvas>
</div>
<div class="title">
click me!
</div>
<script type="importmap">
{
"imports": {
"three": "//repo.bfw.wiki/bfwrepo/js/module/three/build/170/three.module.js",
"three/addons/": "//repo.bfw.wiki/bfwrepo/js/module/three/examples/170/jsm/"
}
}
</script>
<script type="module">
import * as THREE from 'three';
const containerEl = document.querySelector(".container");
const canvasEl = document.querySelector("#tree-canvas");
const params = {
stripesNumber: 15,
stripeWidth: .03 };
const pointer = new THREE.Vector2();
let renderer, scene, camera, orbit, lightHolder, touchPlane, raycaster;
let ballGeometry, stripeGeometry;
const stripes = [];
const balls = [];
initScene();
render();
window.addEventListener("resize", updateSceneSize);
window.addEventListener("click", e => {
pointer.x = e.clientX / window.innerWidth * 2 - 1;
pointer.y = -(e.clientY / window.innerHeight) * 2 + 1;
raycaster.setFro.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0