Liquid Distortion Effects

A slideshow with liquid distortion effects in WebGL powered by PixiJS and GSAP.

The Collective

🎨✨💻 Stay informed and inspired with our daily selection of the most relevant and engaging frontend and design news.

Pure inspiration and practical insights to keep you ahead of the game.

Check out the latest news

Feedback 36

Comments are closed.
  1. It is bugged on latest Safari on High Sierra, once you click to move to the next slide, the left slide arrow moves to the centre of the image.

  2. Hi,
    is it possible to animate a fullwidth div (as a background) instead of an image?

    Title

    ’cause it seems to doesn’t work.
    Thanks.

  3. Hey, realy nice work, many thanks for sharing!

    Is it posible autoplay between slides? That is passing from one slide item to next slide item without click/tap on nav?

    Becouse, in this case, autoPlay: true is the effect inself.

    thank you

    • Hey,

      What you can do for that is to simply add the following code just after the CLICK HANDLERS function in your main.js file around line 250

      setInterval(function(){
      that.moveSlider( that.currentIndex + 1 );
      }, 6000);

    • I meant this :

      setInterval(function(){
      if ( that.currentIndex >= 0 && that.currentIndex < slideImages.length – 1 ) {
      that.moveSlider( that.currentIndex + 1 );
      } else {
      that.moveSlider( 0 );
      }
      }, 6000);

  4. The demo is awesome, I am doing the website for an artist and this effect will perfectly work over the header. I tried downloading the demo file but nothing is wkring. When I am opening index.html, browser is not loading any image. I haven’t change anything ( Just downloaded the file and open it on chrome)

  5. 🙁 Not working? It doesn’t apply any effect when sliding, only fadeOut and fadeIn the next picture. Tested in newest Chrome and Edge, same thing.

  6. Love this! Have you discovered a way for the slides to transition into each other? Without the black in between? Or to change the black to another color? It’s a bit dark for my photos.

  7. Hi 🙂

    Wonderfull effect ! i played with it, however i don’t understand this: `TweenMax.to( displacementFilter.scale, …`

    displacementFilter.scale returns an object `Point{x: 20, y: 20}`. How Tweenmax can selects this ? i tried to replace GSAP TweenMax with AnimeJS using the same behavior but it doesnt work. Have you an idea ?

    • ok, i figured it out with :

      anime({
      targets: displacementFilter.scale,
      x: ‘+=’ + Math.sin(500) * 1000 + ”,
      y: ‘+=’ + Math.cos(500) * 1000 + ”,
      duration: 2000
      })

      AnimeJS is lighter than GSAP 😉

  8. Is there a certain dimension that the image needs to be to fit the full width of the page using this effect? All of the images i have used have a margin on the left side and there is just a black space there. I have the images set right now to 2000×1333. The margin is not visible on smaller screen resolutions such as a 13″ macbook pro, but on the wider PC monitors i use at work the margins become very oobvious.

  9. I’m trying to display text on top of the images in demo5, however I am not able to get that at all. I added ‘texts: texts’, initializing parameter texts to the array defined previously in call to ‘var initCanvasSlideshow = new CanvasSlideshow({‘, however text still doesn’t render. Stepping through main.js I’ve checked the value of the rTexts variable which is added as a child of the image and it does contain the text I am trying to display. Please help me locate where I am going wrong. You can find my code at https://github.com/20012011/pictures