Sha256: d11a7aac21d846f0fdd433a587f2e580a957e6ea158c5ce41f49b59d6d96147e

Contents?: true

Size: 1.95 KB

Versions: 2

Compression:

Stored size: 1.95 KB

Contents

    /**
    A visual item which holds fading in and out capabilities

    @class FadableItem
    @@abstract
    @extends HidableItem
    **/
    var FadableItem = jazz.Class().extending(HidableItem).abstract;

    /**
    Does a fade in transition for the visual item

    @method fadeIn
    **/
    FadableItem.method("fadeIn", function(callback, linearTimingFunction) {
        var item = this;
        item.status = AnimationStatus.FADING_IN;

        if (!item.$el) this.render();
        if (linearTimingFunction) item.$el.css("animation-timing-function", "linear");
        item.$el.removeClass("sideshow-hidden");

        //Needed hack to get CSS transition to work properly
        setTimeout(function() {
            item.$el.removeClass("sideshow-invisible");

            setTimeout(function() {
                item.status = AnimationStatus.VISIBLE;
                if (linearTimingFunction) item.$el.css("animation-timing-function", "ease");
                if (callback) callback();
            }, longAnimationDuration);
        }, 20); //<-- Yeap, I'm really scheduling a timeout for 20 milliseconds... this is a dirty trick =)
    });

    /**
    Does a fade out transition for the visual item

    @method fadeOut
    **/
    FadableItem.method("fadeOut", function(callback, linearTimingFunction) {
        var item = this;
        if (item.status != AnimationStatus.NOT_RENDERED) {
            item.status = AnimationStatus.FADING_OUT;

            if (linearTimingFunction) item.$el.css("animation-timing-function", "linear");
            item.$el.addClass("sideshow-invisible");

            setTimeout(function() {
                item.$el.addClass("sideshow-hidden");
                item.status = AnimationStatus.NOT_DISPLAYED;
                if (linearTimingFunction) item.$el.css("animation-timing-function", "ease");
                if (callback) callback();
            }, longAnimationDuration);
        }
    });

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sideshow-0.4.2 src/interface_itens/fadable_item.js
sideshow-0.4.1 src/interface_itens/fadable_item.js