three实现文字粒子化吸入动画效果代码
代码语言:html
所属分类:动画
代码描述:three实现文字粒子化吸入动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> body { margin: 0; overflow: hidden; } #instructions { position: absolute; color: #666; bottom: 0; padding-bottom: 6px; font-family: sans-serif; width: 100%; text-align: center; pointer-events: none; } </style> </head> <body> <div id="three-container"></div> <div id="instructions"> click and drag to control the animation </div> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.75.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/bas.min.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/TextGeometry.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/FontUtils.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/pnltri.min.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/droid_sans_bold.typeface.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/TweenMax.min.js"></script> <script> THREE.ShapeUtils.triangulateShape = (function () { var pnlTriangulator = new PNLTRI.Triangulator(); return function triangulateShape(contour, holes) { return pnlTriangulator.triangulate_polygon([contour].concat(holes)); }; })(); </script> <script > window.onload = init; function init() { var root = new THREERoot({ createCameraControls: false, fov: 10 }); root.renderer.setClearColor(0xffffff); root.renderer.setPixelRatio(window.devicePixelRatio || 1); root.camera.position.set(0, 0, 1400); var textAnimation = createTextAnimation(); root.scene.add(textAnimation); var tween = TweenMax.fromTo(textAnimation, 4, { animationProgress: 0 }, { animationProgress: 1, ease: Power1.easeInOut, repeat: -1, yoyo: true }); createTweenScrubber(tween); } function createTweenScrubber(tween, seekSpeed) { seekSpeed = seekSpeed || 0.001; function stop() { TweenMax.to(tween, 2, { timeScale: 0 }); } function resume() { TweenMax.to(tween, 2, { timeScale: 1 }); } function seek(dx) { var progress = tween.progress(); var p = THREE.Math.clamp(progress + dx * seekSpeed, 0, 1); tween.progress(p); } var _cx = 0; // desktop var mouseDown = false; document.body.style.cursor = 'pointer'; window.addEventListener('mousedown', function (e) { mouseDown = true; document.body.style.cursor = 'ew-resize'; _cx = e.clientX; stop(); }); window.addEventListener('mouseup', function (e) { mouseDown = false; document.body.style.cursor = 'pointer'; resume(); }); window.addEventListener('mousemove', function (e) { if (mouseDown === true) { var cx = e.clientX; var dx = cx - _cx; _cx = cx; seek(dx); } }); // mobile window.addEventListener('.........完整代码请登录后点击上方下载按钮下载查看
网友评论0