Как сделать срабатывание вызова скрипта Vivus при определенном классе родителя?
Добрый день. Туплю сильно, прошу не бить )
Есть скрипт Vivus для анимации SVG. Нужно запускать анимацию только при наличии у родителя класса active. Прошу помочь. Структура документа <div class="class active (active добавляется динамически)"> <div class=""> <div class=""> <svg id="svg-id"> </div> </div> </div> Обработчик var svgId = new Vivus('svg-id', {start: 'manual'}); if($('#svg-id').parent(.class).hasClass('active')) svgId.play(1); |
с помощью classList.contains можно проверить наличие класса у DOM-элемента:
https://developer.mozilla.org/ru/doc...ment/classList |
Не могли бы вы чуть подробнее. Как на практике применить.
|
ну наверное так :) :
if (document.querySelector('.class').classList.contains('active'){ var svgId = new Vivus('svg-id', {start: 'manual'}); if($('#svg-id').parent(.class).hasClass('active')) svgId.play(1); } |
Цитата:
|
Ошибку Uncaught SyntaxError: Unexpected token выдает
|
Цитата:
|
Цитата:
if (document.querySelector('.class').classList.contains('active')){ var svgId = new Vivus('svg-id', {start: 'manual'}); if($('#svg-id').parent(.class).hasClass('active')) svgId.play(1); } |
Очень странно. Я думал, что этот вызов будет работать. Не могли бы вы помочь, не могу запустить анимацию
|
Цитата:
|
Ошибку уже исправил, но не работает
if (document.querySelector('.design').classList.contains('active')){ var svgId = new Vivus('obturateur1', {start: 'autostart', duration: 250,animTimingFunction: Vivus.EASE_OUT}); if($('#obturateur1').parent('.design').hasClass('active')) svgId.play(1); } |
Цитата:
|
if (document.querySelector('.design').classList.contains('active')){ var svgId = new Vivus('obturateur1', {start: 'autostart', duration: 250,animTimingFunction: Vivus.EASE_OUT}); if($('#obturateur1').parent('.design').hasClass('active')) svgId.play(1); } масло масляное var svgId = new Vivus('obturateur1', {start: 'autostart', duration: 250,animTimingFunction: Vivus.EASE_OUT}); if (document.querySelector('.design').classList.contains('active')){svgId.play(1);} |
Попробую сейчас
|
Арсений JustPuk,
или так var svgId = new Vivus('obturateur1', {start: 'autostart', duration: 250,animTimingFunction: Vivus.EASE_OUT}); if($('#obturateur1').parents('.design').hasClass('active')) svgId.play(1); |
Заменил в start autostart на manual, т.к. анимация стартовала сразу, не работает.
var svgId = new Vivus('obturateur1', {start: 'manual', duration: 250,animTimingFunction: Vivus.EASE_OUT}); if (document.querySelector('.design').classList.contains('active')){svgId.play(1);} |
Так срабатывает всегда, не важно есть active или нет, за это отвечает start: 'autostart'
start: 'manual' вроде как должен позволять выводить в ручном режиме, в зависимости от необходимости, но он не срабатывает |
Часовой пояс GMT +3, время: 02:03. |