DEV Community

loading...

Vanilla JS FadeIn/Out

bmsvieira profile image Bruno Vieira Updated on ・1 min read

It looks like JQuery is slowly starting to be "a thing of the past".. so i recently migrated my project from JQuery to Vanilla.. and the result is quite satisfying.

First, you can be sure that if you made it with JQuery, you will make it with Vanilla aswell, but keep in mind that may required a few more lines of code.

One of the things that i used to use alot with JQuery was FadeIn/FadeOut... now the question was: how to do it in Vanilla?

Well... quite easy actually.
Hope it helps someone.

        // ** FADE OUT FUNCTION **
        function fadeOut(el) {
            el.style.opacity = 1;
            (function fade() {
                if ((el.style.opacity -= .1) < 0) {
                    el.style.display = "none";
                } else {
                    requestAnimationFrame(fade);
                }
            })();
        };

        // ** FADE IN FUNCTION **
        function fadeIn(el, display) {
            el.style.opacity = 0;
            el.style.display = display || "block";
            (function fade() {
                var val = parseFloat(el.style.opacity);
                if (!((val += .1) > 1)) {
                    el.style.opacity = val;
                    requestAnimationFrame(fade);
                }
            })();
        };
Enter fullscreen mode Exit fullscreen mode

It works really well and it gives your project a little personality :P

Discussion (1)

pic
Editor guide
Collapse
krasimir1 profile image
Krasimir1

Hello! This didnt work for me quite well.
When i changed this if (!((val += .1) > 1)) { to this if (!((val += .1) >= 1)) { it started working well.