Здравствуйте, изучаю написание собственных плагинов на Jquery. Есть такое задание:
- Создать свой метод inOut, который эмулирует функционал методов slideToggle и fadeToggle
Сами методы slideToggle и fadeToggle в коде не использовать!
- Метод должен вызываться примерно так:
$('div.container').inOut();
- Метод inOut должен отрабатываться при нажатии кнопки "Нажми меня" примерно так:
$('button').on('click', function(){
$('div.container').inOut();
});
- Подсказки:
- использовать animate
- jQuery допускает использование строки "toggle", как значения для св-в "height" и "opacity"
- предусмотреть возможность изменения скорости
я сделал так
(function($) {
$.fn.mySlideToggle = function(){
this.animate({'height':'toggle','opacity':'toggle'},{duration : 3000});
return this;
};
})(jQuery);
$(function(){
$('button').on('click',function(){
$('.container').mySlideToggle();
});
});
<div class="container">
<h2>Какой-то текст</h2>
<p>
Неспроста свинцовый сосуд мгновенно открывает квазиупругую колбу. Карусель быстра и кратковременна. Часто бывает, что ядерная лапка груба и продуманна. Очевидно, феноменальная шестерня брезентового комплекта бережно увеличивает тайную лампу. Изящное значение резко и метастабильно. Платиновая инерция перегоревшего изолятора образовывает разделение. Свет преднамерен и замысловат. Шланг предумышленен. Деревянное открытие периодично. Базальтовый проектировщик груб. Замкнутый болт наполняет шип. Нагруженность эпизодична и кратковременна.
</p>
</div>
<p><button>Нажми меня</button></p>
Объясните пожалуйста как правильно решить эту задачу и как добавить возможность изменения скорости. Подозреваю что надо вытянуть свойство duration метода animate, но как?