我試圖通過每個使用each()
功能caption-element
內caption
格迭代,得到captionin
,captionout
和delayout
屬性,接下來在captionout
屬性給出該元素的removeClass
(不檢查該類是否已經添加或不)和addClass
到captionin
屬性中給出的元素。這很容易,而且完美。如何將當前迭代的元素(this)傳遞給.each()函數中的setTimeout?
接着我試圖扭轉添加和刪除從captionin
和captionout
屬性採取類,但這次是通過在delayout
屬性給定時間量來延遲它(通過使用setTimeout()
功能)的全過程。它不起作用。
整個IDE是給每個迭代元素自己的setTimeout延遲取自delayout
屬性。
每幫助一個完整的新秀大加讚賞:)
HTML:
<div class="caption">
<div id="1" class="caption-container">
<h1 class="caption-element animated" captionin="fadeInUp" captionout="bounceOut" delayout="2000">Caption 1</h1>
</div>
<div id="2" class="caption-container">
<h1 class="caption-element animated" captionin="swing" captionout="fadeOutDown" delayout="4000">Caption 2</h1>
<h1 class="caption-element animated" captionin="bounceInUp" captionout="lightSpeedOut" delayout="3000">Caption 2</h1>
</div>
<div id="3" class="caption-container">
<h1 class="caption-element animated" captionin="bounceInUp" captionout="rotateOutUpLeft" delayout="2500">Caption 3</h1>
</div>
</div>
jQuery的
jQuery('.caption .caption-element').each(function() {
var captionin = jQuery(this).attr('captionin');
var captionout = jQuery(this).attr('captionout');
var delayout = jQuery(this).attr('delayout');
jQuery(this).removeClass(captionout).addClass(captionin);
setTimeout(function() {
jQuery(this).removeClass(captionin).addClass(captionout);
}, delayout, captionin, captionout);
});
PS,問評論問題downvoting前請,謝謝:)
也許你能解釋一下什麼這段代碼呢?什麼是目標,你想做什麼=>作爲一種功能。 – MJoraid
@Joraid我試圖遍歷'caption'DIV中的每個'caption-element',得到它的captionin,captionout和delayout屬性,然後使用'captionin'刪除並添加當前迭代元素的類'和'captionout',然後進行相反的過程,在'delayout'中給出的延遲之後移除和添加類。希望能幫助到你。謝謝。 – Daniel
我的意思是,你爲什麼這樣做?設計視角。 – MJoraid