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