坚持JS页面转换库自定义

时间:2018-06-09 03:19:39

标签: javascript jquery

我正在尝试使用和自定义Barba.js(a page transition library

但我遇到了一些问题。我试图通过vanilla JS来缓慢替换上面链接中提供的代码,并依赖于CSS转换而不是jQuery animate()。

这是我一起召唤的代码。它工作正常,直到它应该进入fadeIn()函数。它永远不会到达那里。我已经删除了所有触发该功能的尝试,因为我不知道在哪里/如何。

链接的网站使用了jQuery的.promise()函数来验证fadeOut()函数是否已经完成,但我无法弄清楚如何使用vanilla JS复制它。

我需要更改什么才能让JS进入fadeIn()函数?

document.addEventListener("DOMContentLoaded", function() {
    Barba.Pjax.Dom.wrapperId = "container";
    Barba.Pjax.Dom.containerClass = 'wrapper';
    Barba.Pjax.start();

    var FadeTransition = Barba.BaseTransition.extend({
        start: function() {

            Promise
                // don't progres until newContainerLoading and old content/fadeOut is done
                this.newContainerLoading

                // when it's verified that above is complete, run the fadeIn function below
                .then(this.fadeOut.bind(this));

        },

        fadeOut: function() {

            console.log("fadeOut started");

            this.oldContainer.classList.add("animate-out");

            let element = document.getElementById("wrap");
            element.addEventListener("transitionend", function(event) {
                console.log("transition end");
            });


         },

        fadeIn: function() {

            console.log("fadeIn started");
            $(this.oldContainer).hide();

            this.newContainer.style.visibility = 'visible';
            this.newContainer.style.opacity = 1;
        }
    });

     Barba.Pjax.getTransition = function() {

       return FadeTransition;
    };

});

0 个答案:

没有答案