У меня есть список изображений. Я хотел бы исчезнуть на следующем изображении после того, как предыдущее изображение исчезло. Я думаю, это должно быть довольно просто.
<ul class="nav fading">
<li><?= anchor("#","Supported by",array("class" => "footer-heading disabled")) ?></li>
<li><?= img("assets/img/1.png") ?></li>
<li><?= img("assets/img/2.png") ?></li>
</ul>
Мой код:
$(document).ready(function(){
$(".fading img").hide(); //hide everything
$(".fading img:first").fadeIn(4000);
$(".fading img:first").fadeOut(4000,function(){
$(this).parent().next().fadeIn(4000);
});
});
Я попытался снова затушить один и тот же образ, после того как он исчез, и это работает:
$(document).ready(function(){
$(".fading img").hide(); //hide everything
$(".fading img:first").fadeIn(4000);
$(".fading img:first").fadeOut(4000,function(){
$(this).fadeIn(4000);
});
});
Проблема возникает, когда я пытаюсь исчезнуть в следующем изображении в списке.
Чтобы найти <img>
от другого, вам нужно будет вернуться назад к "поколению" с помощью .find()
или .children()
, .parent()
с .parent()
:
$(this) // the current, ':first' <img>
.parent() // to its parent <li> (2nd under the <ul>)
.next() // to the last <li>
.find('img') // to the <img> under the last <li>
.fadeIn(4000);
В противном случае строка находила и пыталась .fadeIn()
вместо <li>
, которая не будет влиять на <img>
под ним.
$(this).parent().next().fadeIn(4000);
Я бы предложил следующее
Заменить это
$(this).parent().next().fadeIn(4000);
С этим
$(this).parent().next().find('img').fadeIn(4000);