Плагин цикла jQuery с различными значениями тайм-аута для каждого слайда

StackOverflow https://stackoverflow.com/questions/3075073

  •  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);
  }
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top