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