Плагин цикла jQuery с различными значениями тайм-аута для каждого слайда
-
28-09-2019 - |
Вопрос
Я пытаюсь использовать плагин jQuery Cycle Cycle для цитата цитата. Я хотел бы, чтобы цитаты отображались на разное количество времени в зависимости от длины цитаты. Для достижения этого я получаю систему Mangagement Content для вывода количества секунд в качестве имени класса, такое как DUR13, будет в течение 13 секунд.
Это моя неработающая попытка:
$('.featureFade').cycle({cycleTimeout: 10, after: onCycleAfter});
function onCycleAfter() {
$('.featureFade').cycle('pause');
var duration = $(this).attr('class').substring($(this).attr('class').indexOf('dur')+3)
setTimeout(oncycleEnd, duration * 1000);
}
function oncycleEnd() {
$('.featureFade').cycle('resume');
}
Это возможно с циклом? Если нет, есть ли другой плагин, который будет работать? Мне на самом деле не нужны необычные эффекты, просто исчезновение в исчезновении было бы достаточно.
Большое спасибо
Решение
Есть timeoutFn
вариант Вы можете использовать, как это:
$('.featureFade').cycle({
timeoutFn: function(currElement, nextElement, opts, isForward) {
var duration = $(currElement).attr('class').substring($(currElement).attr('class').indexOf('dur')+3)
return duration * 1000;
}
});
Однако вместо класса вы можете использовать Атрибут данных, что-то вроде этого:
<img data-duration="2000" src="..." />
Тогда ваш код немного проще:
$('.featureFade').cycle({
timeoutFn: function(currElement, nextElement, opts, isForward) {
return parseInt($(currElement).attr('data-duration'), 10);
}
});
Не связан с StackOverflow