three实现三维炫酷科技感振动波金字塔发光动画效果代码
代码语言:html
所属分类:三维
代码描述:three实现三维炫酷科技感振动波金字塔发光动画效果代码,点击按钮可触发不同的振动动画特效。
代码标签: three 三维 炫酷 科技感 振动波 金字塔 发光 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<style>
body {
margin: 0;
overflow: hidden;
background-color: #000;
font-family: 'Inter',sans-serif
}
canvas {
width: 100%;
height: 100vh;
display: block;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,-50%)
}
#ui-container {
position: fixed;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
z-index: 10;
text-align: center
}
#effect-trigger {
padding: 12px 24px;
font-size: 16px;
font-weight: 600;
color: #fff;
background: rgba(255,255,255,0.1);
border: 2px solid rgba(255,255,255,0.3);
border-radius: 12px;
cursor: pointer;
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
transition: background .3s,color .3s,transform .2s
}
#effect-trigger:hover {
background: rgba(255,255,255,0.2);
border-color: rgba(255,255,255,0.5)
}
#effect-trigger:active {
transform: scale(0.95)
}
#effect-info {
margin-top: 10px;
color: rgba(255,255,255,0.8);
font-size: 14px
}
</style>
<div id="ui-container">
<button id="effect-trigger">Trigger Effect</button>
<div id="effect-info">Lightning Storm</div>
</div>
<script type="importmap">
{
"imports":{
"three":"//repo.bfw.wiki/bfwrepo/js/module/three/build/164/three.module.js",
"three/addons/":"//repo.bfw.wiki/bfwrepo/js/module/three/examples/164/jsm/"
}
}
</script>
<script type="module">
import*as THREE from 'three';
import {OrbitControls} from 'three/addons/controls/OrbitControls.js';
import {EffectComposer} from 'three/addons/postprocessing/EffectComposer.js';
import {RenderPass} from 'three/addons/postprocessing/RenderPass.js';
import {UnrealBloomPass} from 'three/addons/postprocessing/UnrealBloomPass.js';
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75,window.innerWidth / window.innerHeight,0.1,1000);
const renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0x000000);
document.body.appendChild(renderer.domElement);
const controls = new OrbitControls(camera,renderer.domElement);
controls.enableDamping = true;
controls.dampingFactor = .05;
camera.position.set(0, 2, 6);
controls.target.set(0, 1, 0);
controls.update();
const composer = new EffectComposer(renderer);
const renderPass = new RenderPass(scene,camera);
composer.addPass(renderPass);
const bloomPass = new UnrealBloomPass(new THREE.Vector2(window.innerWidth,window.innerHeight),1.5,0.4,0.85);
bloomPass.threshold = .1;
bloomPass.strength = 2.5;
bloomPass.radius = .8;
composer.addPass(bloomPass);
let effectState = 0;
const clock = new THREE.Clock();
let time = 0;
const effectThemes = [{
name: "Lightning Storm",
effect: "lightning",
outer: [new THREE.Color(0x00ffff), new THREE.Color(0x4169e1), new THREE.Color(0x9400d3)],
outerEdge: new THREE.Color(0x87cefa),
inner: [new THREE.Color(0xff1493), new THREE.Color(0xff4500), new THREE.Color(0xffd700)],
innerEdge: new THREE.Color(0xffd700)
}, {
name: "Volcanic Shards",
effect: "shards",
outer: [new THREE.Color(0xffd700), new THREE.Color(0xff4500), new THREE.Color(0x8b0000)],
outerEdge: new THREE.Color(0xff8c00),
inner: [new THREE.Color(0xffff00), new THREE.Color(0xff6347), new THREE.Color(0xdc143c)],
innerEdge: new THREE.Color(0xffa500),
shardColors: [new THREE.Color(0xff8c00), new THREE.Color(0xffa500), new THREE.Color(0xffff00)]
}, {
name: "Arctic Rings",
effect: "rings",
outer: [new THREE.Color(0x00ffff), new THREE.Color(0x87ceeb), new THREE.Color(0xb0e0e6)],
oute.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0