three打造一个三维图片粒子分解转场效果幻灯片
代码语言:html
所属分类:幻灯片
代码描述:three打造一个三维图片粒子分解转场效果幻灯片
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body {
margin: 0;
width: 100%;
height: 100%;
}
canvas {
display: block;
cursor: pointer;
}
</style>
</head>
<body translate="no">
<canvas id="canvas"></canvas>
<p class="collection">
</p>
<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/gsap.3.3.1.js"></script>
<script type="module">
import {
BufferGeometry,
Color,
DoubleSide,
Face3,
Geometry,
InstancedBufferAttribute,
InstancedMesh,
MathUtils,
MeshBasicMaterial,
Object3D,
PerspectiveCamera,
Scene,
TextureLoader,
Vector2,
Vector3,
WebGLRenderer } from
'https://unpkg.com/three@0.119.0/build/three.module.js';
function App() {
const conf = {
size: 10,
images: [
{ src: 'http://repo.bfw.wiki/bfwrepo/image/5e0c6f2cae508.png' },
{ src: 'http://repo.bfw.wiki/bfwrepo/image/5e0c6f962a0d0.png' },
] };
let renderer, scene, camera, cameraCtrl;
const screen = {
width: 0, height: 0,
wWidth: 0, wHeight: 0,
ratio: 0 };
const loader = new TextureLoader();
const textures = [];
let planes, plane1, plane2;
let progress = 0,targetProgress = 0;
const mouse = new Vector2();
init();
function init() {
renderer = new WebGLRenderer({ canvas: document.getElementById('canvas'), antialias: true });
camera = new PerspectiveCamera(50);
camera.position.z = 150;
updateSize();
window.addEventListener('resize', onResize);
Promise.all(conf.images.map(loadTexture)).then(responses => {
initScene();
initListeners();
gsap.fromTo(plane1.uProgress,
{
value: -2 },
{
value: 0,
duration: 2.5,
ease: Power4.easeOut });
requestAnimationFrame(animate);.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0