Как запускать плагин Typit.js только по клику

186
11 ноября 2018, 14:30

Есть такой плагин, называется TypeIt. Я хочу сделать меню на сайте, с эффектом печатающегося текста. То есть, изначально меню нет (есть только кнопка), нажимаешь на кнопку "печатается" меню, потом я нажимаю на кнопку второй раз и меню волшебным образом исчезает. Методом проб и ошибок, я понял, что вариант со сменой класса и свойством display: inline/none в качества скрытия/отображения меню, не подходит: плагин просто не обновляется и при попытке вызвать меню второй раз появляется только мигающий курсор. Тогда я решил полностью удалять и добавлять меню на сайт методом append, а потом запускать плагин. Но ничего не работает. Помогите связать эти два скрипта вместе.

<script src="https://cdn.jsdelivr.net/jquery.typeit/4.4.0/typeit.min.js"></script>
<button class="menu_btn"></button>
<div class="menu-content" id="menu-content"></div>
$(document).ready(function() {
    var menuBtn = $('.menu_btn');
    menuBtn.click(function(event) { 
        if (event.target.classList.contains('menu_btn_active')) {
            $(".effects").fadeOut();
            setTimeout(function () { 
                $(".effects").remove(); 
            }, );
        } else {
            $(".menu-content").append("<div class='effects' style='display: none;'>Эффект</div>"); 
            $(".effects").fadeIn();
        }
        menuBtn.toggleClass('menu_btn_active');
        return false;
    });
});

$(document).ready(function() {
    menuBtn.click(function(event) {
        new TypeIt('.effects', {
        });
    });
});
Answer 1

Документация по плагину метод reset()

Должно получиться что-то вроде такого

var menuBtn = $('.menu_btn');
$(document).ready(function() {
    menuBtn.click(function(event) {
        if (!$(this).hasClass('menu_init')) {
            $(".effects").fadeIn();
            new TypeIt('.effects', {
                ...........
            })
        }
        if (!$('.effects').hasClass('menu_btn_active')) {
            $('.effects')
                .fadeIn()
                .addClass('menu_btn_active')
                .reset();
        } else {
            $('.effects').removeClass('menu_btn_active').fadeOut()
        }
        return false;
    });
});
READ ALSO
Как скрыть navbar при клике на пункт меню?

Как скрыть navbar при клике на пункт меню?

Как закрывать меню Bootstrap при нажатии на любой пункт меню в мобильной версии?

266
Запись/Сохранение видео с веб-камеры

Запись/Сохранение видео с веб-камеры

У меня есть два примера кодаПервый - запускает веб-камеру, и выводит списки девайсов (микрофон, камера и тд)

221
Mocha + Flow (использование declare)

Mocha + Flow (использование declare)

Имеется файл flow-typed/myLibDefjs:

144