البرنامج المساعد لدورة jQuery مع قيم مهلة مختلفة لكل شريحة
-
28-09-2019 - |
سؤال
أحاول استخدام المكون الإضافي لدورة jQuery لدوران اقتباسات مختلفة. أرغب في عرض الاقتباسات لفترة مختلفة من الوقت اعتمادًا على طول الاقتباس. لتحقيق ذلك ، أحصل على نظام Mangagement للمحتوى لإخراج كمية الثواني كاسم فئة مثل 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