pixi+gsap实现照片飞入飞出切割动画效果代码
代码语言:html
所属分类:动画
代码描述:pixi+gsap实现照片飞入飞出切割动画效果代码
代码标签: pixi gsap 照片 飞入 飞出 切割 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> body { position: relative; overflow: hidden; background: #fff; } </style> </head> <body > <script id="fs" type="x-shader/x-fragment"> precision mediump float; varying vec2 vTextureCoord; uniform sampler2D uSampler; uniform float uTime; uniform float uAspect; uniform float centerGap; void main (void) { vec4 coord = gl_FragCoord; float angle = 3.0; float split = 70.0; float speed = 0.000001; float distance = distance(coord.x - centerGap + split, coord.y / angle) / split; float offset = floor(distance) * floor(distance) * floor(distance) * floor(distance) * uTime * speed * distance; float x = vTextureCoord.x + offset / angle * uAspect; float y = vTextureCoord.y - offset; if (x < 0.0 || y < 0.0) discard; gl_FragColor = texture2D(uSampler, vec2(x, y)); } </script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/pixi.6.1.0.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/gsap.3.10.1.js"></script> <script > // filter PIXI.filters.MyFilter = class extends PIXI.Filter { constructor() { const fragmentSrc = document.querySelector('#fs').textContent super( null, // vertex shader fragmentSrc, // fragment shader { uTime: 0.0, uAspect: 1.0, centerGap: 0.0, } ) } } // variables const imageSize = 300 // setup const app = new PIXI.Application({ transparent: true, resizeTo: window, }) document.body.appendChild(app.view) // rectangle const background = new PIXI.Graphics() .drawRect(0, 0, window.innerWidth, window.innerHeight) .endFill() const background1 = new PIXI.Graphics() .drawRect(0, 0, window.innerWidth, window.innerHeight) .endFill() const background2 = new PIXI.Graphics() .drawRect(0, 0, window.innerWidth, window.innerHeight) .endFill() const background3 = new PIXI.Graphics() .drawRect(0, 0, window.innerWidth, window.innerHeight) .endFill() const background4 = new PIXI.Graphics() .drawRect(0, 0, window.innerWidth, window.innerHeight) .endFill() app.stage.addChild(background) // container const container1 = new PIXI.Container() const container2 = new PIXI.Container() const container3 = new PIXI.Container() const container.........完整代码请登录后点击上方下载按钮下载查看
网友评论0