image/video/content slideshow engine providing high quality animation effects including Kenburns Effect and GLSL Transitions.

Related tags

Effect diaporama
Overview

Diaporama

Diaporama is an image/video/content slideshow engine providing high quality animation effects including Kenburns effect and GLSL Transitions.

-> DEMO <-

Related Projects

Diaporama Key features

  • Minimal and unopinionated library. Diaporama focuses on rendering the slideshow. Up to you to hook it to any event (window resize, touch events, keyboard,...) based on your needs.
  • Responsive: Diaporama works with any resolution and any ratio. The original image ratios are always preserved (crop to fit).
  • Simple API. the Diaporama API mimic the HTML5 Video API for a better learning curve. You can set some Properties and the library will always be in sync with your changes (and update efficiently with the minimal changes). There is also Events.
  • Easily interoperable with Virtual DOM library.
  • Videos support. allowing to define multiple video formats and image fallback.
  • Kenburns effect on images with configurable animation from/to and easing function.
  • Customizable transition effects using GLSL Transitions created on GLSL.io (or your own)
  • Works everywhere. Diaporama is implemented with WebGL (hardware accelerated) but also have DOM fallback.
  • The slideshow is described in a JSON format.
  • Retina-ready. By default, the library use devicePixelRatio as canvas resolution. N.B.: This has a cost in term of performance, so if you want you can just give 1. You can also responsively adapt it based on the canvas area.
  • Texts, Images and Shapes support – using slide2d which exposes everything Canvas can do.

Gitbooks Full Documentation

https://gre.gitbooks.io/diaporama/content/

Current state of browser support

Diaporama should be widely supported by browsers (desktop and mobile). If WebGL is not supported by the browser/hardware, it fallbacks properly to DOM implementation (an opacity transition is used).

Here are the current browsers I've been testing on

Comments
  • Can a slideshow be downloaded as an mp4?

    Can a slideshow be downloaded as an mp4?

    Maybe a silly question, but I'd love to make a slideshow, and then somehow allow the user to download it as an mp4 / gif, or else capture the data, send it to a server, and create an mp4 / gif out of it there (for the user to download).

    Is that possible?

    opened by onassar 13
  • diaporama.next() skips transition

    diaporama.next() skips transition

    I don't know if it's intended or not, but programatically switching the slide skips animation and instantly turns on the next slide. Is there any way to make sure transition animation is applied before next slide is turned on?

    difficulty:high feature priority:medium 
    opened by AVVS 10
  • event 'slideEnd' should be triggered in another place

    event 'slideEnd' should be triggered in another place

    Current Problem: the event "slideEnd" and the event "transitionEnd" are triggered almost the same time, so there's no need to do the same thing two times. The event "slideEnd" can be placed in another place, to do more. I think, the event "slideEnd" should be trigger just after an image completing transition and kenburns(important, after the two effects completed). Reason: the new "slideEnd" could cover the functionalities of the old one, in addition, it can do more. When an image is already completed, diaporama can jump to a random image, by listen to the event "slideEnd". Is it practical?

    opened by deepraining 8
  • Scaling algorithm to fit images to slider frame

    Scaling algorithm to fit images to slider frame

    Greetings!

    I've been using slider.js for a personal photo spinner project. I thought people might be able to use the modifications I made to support images of heterogeneous sizing; in the original configuration, an image's width is fit to the width of the slider and the height is scaled to maintain aspect ratio (but the bottom of the image might be clipped).

    This modification updates the image size relative to the slider frame so that the entire image fits in the frame. More specifically, the image is scaled up or down as needed so that:

    • the entire image fits in the frame
    • aspect ratio is maintained
    • one of the dimensions (width or height, depending on the aspect ratio of the frame and the image) is filled.

    -- Known Issues --

    • Resizing the slider does not recompute the image sizes.
    • slider.min.js has not been updated and the docs have not been updated (I lack a functional install of yuicompressor or doccos).

    Let me know if you have any questions!

    Sincerely, Mark Tomczak Pittsburgh, PA, USA

    opened by fixermark 7
  • Find ways to only use one webgl canvas

    Find ways to only use one webgl canvas

    The use of KenBurns.WebGL and glsl-transition-core force to use different canvases (3) to perform the diaporama. This doesn't scale because WebGL have limited simultaneous contexts.

    We should probably use framebuffers instead.

    difficulty:high priority:high improvment 
    opened by gre 5
  • Is it possible, slide a simple html page

    Is it possible, slide a simple html page

    I need to slide/carousel simple html pages or iframes, is it possible with Slider.js ?

    ... follow a page sample I'd like to convert in a carousel : http://gitwatcher.com/ the object I'd like to slide is actually

    <div id="chart" style="position: relative;">
        <iframe height="540" frameborder="0" width="860" scrolling="no" name="Drawing_Frame_82178"
         id="Drawing_Frame_82178" marginheight="0" marginwidth="0">
        </iframe>
    </div>
    

    any idea ?

    Thanks in advance Luca

    opened by lgs 5
  • Crash when invoking .destroy()

    Crash when invoking .destroy()

    Stack trace:

    Error in event handler for (unknown): TypeError: undefined is not a function
        at Object.StoreTransitions.destroy (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:17457:20)
        at Object.DiaporamaRenderingCanvas.destroy (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:17514:22)
        at Object.assign.destroy (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:16813:21)
        at React.createClass.componentWillUnmount (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:16661:20)
        at ReactCompositeComponentMixin.unmountComponent (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:30097:14)
        at Object.ReactReconciler.unmountComponent (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:38006:22)
        at ReactCompositeComponentMixin.unmountComponent (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:30103:21)
        at Object.ReactReconciler.unmountComponent (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:38006:22)
        at Object.ReactChildReconciler.unmountChildren (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:28429:23)
        at ReactDOMComponent.ReactMultiChild.Mixin.unmountChildren (chrome-extension://nebbhkdcphlabifnafeopppcnjmnjoef/lib.min.js:36745:28)
    
    StoreTransitions.prototype = {
      destroy: function () {
        for (var t in this.ts) {
          this.ts[t].t.destroy();    // crash happens here      <---------------- 
        }
        this.ts = null;
      },
    
    bug difficulty:easy priority:high 
    opened by AVVS 3
  • Give options in the constructor (#14)

    Give options in the constructor (#14)

    This pull request addresses issue #14 (All options could be given in the constructor). This is my first time working with Coffee Script, so I thought it would be a fun simple issue to take care of. Would love some feedback.

    The interesting part is the constructor of slider (https://github.com/mpdaugherty/slider.js/pull/new/master#L5R239). I've moved the properties that people may want to set into a 'defaults' object on the prototype. Then, during initialization, if the user passes in an object with any of the same property names, those properties are set directly on the new Slider.

    If the setX() functions were all extremely simple (e.g. set property and return this), we could also automatically generate them from the default property object. However, they seem to do extra work when @node is already set, so I decided not to go that far.

    There are also some other properties like 'transition' that we could probably add to this set of options, and we might want to add the new properties in SliderWithCanvas. I'd like to get your feedback first, however, to make sure these changes match your project; as I mentioned, I haven't done any Coffee Script before, so I'm not really sure if this is idiomatic or not...

    To test, I modified demo/index.html to use the new constructor options (https://github.com/mpdaugherty/slider.js/pull/new/master#L1R109). Is there a more complete test suite somewhere?

    Finally, my editor automatically removed extra spaces at the end of some lines, so the diff is a little messy. My apologies.

    opened by mpdaugherty 3
  • Update README URLs based on HTTP redirects

    Update README URLs based on HTTP redirects

    Created with https://github.com/dkhamsing/frankenstein

    GitHub Corrected URLs

    | Was | Now | | --- | --- | | https://github.com/glslio/glsl-transition | https://github.com/gre/glsl-transition |

    HTTPS Corrected URLs

    | Was | Now | | --- | --- | | http://github.com/glslio/diaporama-react | https://github.com/glslio/diaporama-react | | http://github.com/gre/diaporama-maker | https://github.com/gre/diaporama-maker | | http://github.com/gre/kenburns | https://github.com/gre/kenburns | | http://gre.gitbooks.io/diaporama/content/ | https://gre.gitbooks.io/diaporama/content/ | | http://gre.gitbooks.io/diaporama/content/** | https://gre.gitbooks.io/diaporama/content/** |

    Other Corrected URLs

    | Was | Now | | --- | --- | | http://npmjs.org/package/diaporama | https://www.npmjs.com/package/diaporama |

    opened by ReadmeCritic 2
  • I don't see any download link on the homepage (http://sliderjs.org/)

    I don't see any download link on the homepage (http://sliderjs.org/)

    I looked all over, tried searching for the word 'download'.. no luck.

    I will get the code from here, but not sure about others, maybe a big download button would be nice?

    opened by hakunin 2
  • Canvas scaling issue on smartphone

    Canvas scaling issue on smartphone

    First thanks for your work,

    I have an issue when I watch the slider on an android smartphone. The pictures are to large inside the slider.

    For information I have test it on a sony Ericsson Xperia X10 android version : 2.1

    opened by mookymook 2
  • Canvas DOM element not removed on destroy

    Canvas DOM element not removed on destroy

    Instantiating a diaporama instance adds a canvas to the DOM but destroying does not remove it. This is a problem for single-page apps that may instantiate and destroy diaporama many times.

    #66

    opened by matoso 0
  • Migrate from glsl-transitions to gl-transitions

    Migrate from glsl-transitions to gl-transitions

    Building diaporama emits a warning due to glsl-transitions being deprecated. gl-transitions is not exactly a drop in replacement so will require some work to migrate.

    opened by matoso 1
  • Video audio tracks not playing on Mobile Safari / iOS

    Video audio tracks not playing on Mobile Safari / iOS

    If you try to play a video in diaporama on Mobile Safari, you'll see the video play but you won't hear the video's audio track (tested on iOS 10 and 11).

    I've tried setting the playsinline attribute on the item.video. Neither seems to work: https://github.com/rorito/diaporama/commit/6579232d2577627af842992ea0cad06c7aac8cca https://github.com/rorito/diaporama/commit/57f7e3f2a55f803a7c5a5b4e3123b20690d36a45

    Basically, I’ve tried setting the playsinline attribute of item.video, but I wonder if maybe Mobile Safari doesn’t respect that because the video element isn’t in the DOM? It could also be that the user gesture action of clicking the diaporama-controls play button isn't interpreted by Mobile Safari as a user action on a

    If I’m reading the guidelines correctly (https://webkit.org/blog/6784/new-video-policies-for-ios/), as long as you don’t autoplay and the play starts with a user action, you should be able to hear the video’s audio when played inline. I don’t think you need to have the

    opened by rorito 0
  • DiaporamaFormatError: Timeline item can't be understood as a segment.

    DiaporamaFormatError: Timeline item can't be understood as a segment.

    I'm trying to add a video in an generated slideshow. But every way I try, if the video is in de json I get this error.

    { "generator": { "version": "0.6.0", "url": "https://github.com/gre/diaporama-maker" }, "timeline": [ { "duration": 1500, "transitionNext": { "duration": 1000 }, "image": "fPuLkQNXRUKI6HQ2cMPf_IMG_4761.jpg" }, { "duration": 2500, "transitionNext": { "duration": 1000 }, "video": { "video/mp4": "bbb_sunflower_1080p_30fps_normal.mp4" } }, { "duration": 5100, "transitionNext": { "duration": 1000 }, "image": "photo-1421930451953-73c5c9ae9abf.jpg" }, { "duration": 4000, "transitionNext": { "duration": 1000 }, "image": "photo-1423483641154-5411ec9c0ddf.jpg" } ] }

    opened by Lauwisme 0
Owner
Gaëtan Renaudeau
👾 👨‍👩‍👦‍👦 👨🏻‍🌾 🌱 🀄️ 🍷 🥖 – Tech Lead on Ledger Live
Gaëtan Renaudeau
A slideshow that uses a CSS glitch effect for slide transitions.

Glitch Slideshow A slideshow that uses the CSS Glitch Effect to transition between slides. Article on Codrops Demo Credits Images by Unsplash.com imag

Codrops 111 Dec 16, 2022
A sticky image effect for a slideshow inspired by ultanoir's website.

How to Create a Sticky Image Effect with Three.js A sticky image effect for a slideshow inspired by ultanoir's project showcase slideshow. Article on

Daniel Velasquez 198 Nov 18, 2022
A speedy motion transition effect for an image slideshow.

Motion Transition Effect A speedy motion transition effect for an image slideshow. Inspired by Ping Pong Slow Motion. Article on Codrops Demo Credits

Codrops 51 Jul 5, 2022
Easy Effect is a WYSIWYG Lottie animation editor, dedicated to helping you make dynamic effects easily.

Easy Effect ?? Introduction Easy Effect is a WYSIWYG animation editor based on Lottie. ✨ Feature ?? ease to use Anyone who want to create an animation

拍岸 10 Dec 16, 2022
A JavaScript library for advanced 2D slideshow with WebGL, that provides variety of beautiful effects

gl-slideshow An advanced 2D slideshow with WebGL, provides a variety of beautiful effects with GLSL power. Shaders are forked from https://gl-transiti

Akihiro Oyamada 68 Nov 28, 2022
A JavaScript library for advanced 2D slideshow with WebGL, that provides variety of beautiful effects

gl-slideshow An advanced 2D slideshow with WebGL, provides a variety of beautiful effects with GLSL power. Shaders are forked from https://gl-transiti

Akihiro Oyamada 69 Jan 1, 2023
❄️ Add a live frosted glass blur effect over any type of web content, including text.

Frosted Glass ❄️ Add a live frosted glass blur effect over any type of web content, including text. ️️ Demos Install npm install frosted-glass --save

Adrian Carriger 63 Nov 10, 2022
The slides in this slideshow wobble as they move. The effect is based on Sergey Valiukh's Dribbble shot and was made using Snap.svg and morphing SVG paths.

Wobbly Slideshow Effect The slides in this slideshow wobble as they move. The effect is based on Sergey Valiukh's Dribbble shot and was made using Sna

Codrops 112 Jul 27, 2022
A subtle tilt effect for images. The idea is to move and rotate semi-transparent copies with the same background image in order to create a subtle motion or depth effect.

Image Tilt Effect A subtle tilt effect for images. The idea is to move and rotate semi-transparent copies with the same background image in order to c

Codrops 571 Nov 21, 2022
Liquideffect - Javascript Library for creating liquid effect on image and RGB effect on mouse direction.

LiquidEffect Javascript Library for creating liquid effect on image and RGB effect on mouse direction. Demo https://liquideffect.netlify.app/ Dependen

Rohail 8 May 6, 2022
Loading effects for assets including some built in animated reveals

Asset loading effects This is a library to show the loading progress of given assets and reveal them using various animations. Please give feedback, r

Zach Saucier 97 Dec 8, 2022
Osmos - lightdm greeter theme based on GLSL

Osmos - lightdm greeter theme based on GLSL

null 42 Jan 4, 2023
Demonstration of different animation effects with AngularJS ngView directive.

ngView-animation-effects This is a simple demonstration of how easy you can make your ngView directive transition pages with nice animations. All you

Aliaksandr Astashenkau 184 Dec 31, 2022
A set of effects for mouse-following image trails that show a random series of images.

Image Trail Effects A set of effects for mouse-following image trails that show a random series of images. Inspired by the effect seen on VLNC Studio.

Codrops 177 Dec 28, 2022
Some ideas for modern multi-layer page transitions using CSS Animations.

Multi-Layer Page Reveal Effects Some ideas for modern multi-layer page transitions using CSS Animations. Article on Codrops Demo Sponsor Demo sponsore

Codrops 117 Nov 1, 2022
Background image segment effect as seen on [Filippo Bello's Portfolio](http://www.filippobello.com/portfolio).

Segment Effect Background image segment effect as seen on Filippo Bello's Portfolio. Article on Codrops Demo License Integrate or build upon it for fr

Codrops 526 Nov 29, 2022
Switch the background-image with using effect.

jQuery.BgSwitcher Switch the background image with using effect. Demo http://rewish.github.io/jquery-bgswitcher/ Usage <div class="box"> <p>Lorem ip

rewish 195 Dec 30, 2022
Pure CSS Image Hover Effect Library

imagehover.css A Scaleable & Light Image Hover CSS Library Imagehover.css is a lovingly crafted CSS library allowing you to easily implement scaleable

Ciaran Walsh 1.8k Dec 21, 2022
A full image reveal effect with fancy thumbnail sliding.

Full Image Reveal Effect A full image reveal effect with fancy thumbnail sliding. Article on Codrops Demo Credits Images from Unsplash.com TweenMax by

Codrops 155 Dec 19, 2022