البرنامج المساعد لدورة jQuery مع قيم مهلة مختلفة لكل شريحة

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

  •  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);
  }
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top