Переход иногда работает, а иногда не работает - PullRequest
0 голосов
/ 09 апреля 2020

Я начинаю работать над этим кодом, но когда я закончу, я нахожу проблему с переходом.

Иногда это работает, а иногда не работает. Иногда он работает на hide() и не работает на show(), затем иногда наоборот, а иногда и оба не работают.

Для тестирования я просто обновляю sh страницу и получаю результат после каждого refre sh, который является другим результатом.

Мой JavaScript код:

const $ = function (_element) {

    class myClass {
        constructor (_element) {
            this._timeOut = 0;
            this._element = typeof(_element) === "string" && _element !== "" && document.querySelectorAll(_element).length > 0 ? Array.from(document.querySelectorAll(_element)) : false; 
        }
        _checkElement () {
            if (!(this._element)) {
                console.error("Function Parameter: Set at least one element on $ function parameters");
                return false;
            } else {
                return true;
            }
        }
        hide(_time, _callBackFunction = false) {

            if (this._checkElement()) {

                this._element.forEach( (element) => {

                    element.style.transition = `opacity ${_time}ms`;
                    element.style.opacity = 0;

                    setTimeout( _ => {
                        element.style.display = "none";
                        element.style.transition = "";
                        if (!!(_callBackFunction)) {
                            _callBackFunction();
                        }


                    }, _time);


                });


            }
            this._timeOut += _time;
            console.log(this._timeOut);
            return this;

        }
        show(_time, _callBackFunction = false) {
            setTimeout( _ => {

                if (this._checkElement()) {

                    this._element.forEach((element) => {

                        element.style.transition = `opacity ${_time}ms`;
                        element.style.display = "block";

                        element.style.opacity = 1;

                        setTimeout( _ => {

                            element.style.transition = "";
                            if (!!(_callBackFunction)) {
                                _callBackFunction();
                            }
                        }, _time);


                    });

                }

            }, this._timeOut)



        }

    }

    let newElement = new myClass(_element);
    return newElement;
};

$("div").hide(2000).show(1000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...