次のjqueryテキストフライインアニメーションがあります。さらに説明する前のコードは次のとおりです。
<script type="text/javascript">
$(document).ready(function(){
$('.flying1 .flying-text').css({opacity:0});
$('.flying1 .active-text').animate({opacity:1, marginLeft: "0px"}, 1200); //animate first text
var int = setInterval(changeText, 3500); // call changeText function every 5 seconds
function changeText(){
var $activeText = $(".flying1 .active-text"); //get current text
var $nextText = $activeText.next(); //get next text
if ($activeText.is('.end')) {
$activeText.stop().delay(5000);
$('.flying1').html('<div class="flying-text active-text">Text4<div>
<div class="flying-text">Text5</div>
<div class="flying-text end2">Text6</div>');
$('.flying1 .flying-text').css({opacity:0});
$('.flying1 .active-text').animate({opacity:1, marginLeft: "0px"}, 1200); //animate first text
};
if ($activeText.is('.end2')) {
$activeText.stop().delay(5000);
$('.flying1').html('<div class="flying-text active-text">Text1<div>
<div class="flying-text">Text2</div>
<div class="flying-text end">Text3</div>');
$('.flying1 .flying-text').css({opacity:0});
$('.flying1 .active-text').animate({opacity:1, marginLeft: "0px"}, 1200); //animate first text
};
$nextText.css({opacity: 0}).addClass('active-text').animate({opacity:1, marginLeft: "0px"}, 1200, function(){
$activeText.removeClass('active-text');
});
}
});
</script>
HTML
<div class="flying-text active-text">Text1<div>
<div class="flying-text">Text2</div>
<div class="flying-text end">Text3</div>
ご覧のとおり、Text1-3が最初にアニメーション化/フライインし、Text3に到達すると、アニメーションでText4-6に置き換えられ、Text6に再び到達すると、再びText1-3にループバックします...基本的に私がやりたいのは、アニメーションがテキストの終わり、つまりText3(class = "flying-text end")とText6(class = "flying-text end2"に到達したときに、アニメーションをより長く一時停止/遅延させることです。 Text3とText6を他のすべてのアニメーションよりも長くアニメーション化したいのですが、どうすればよいですか?使用したコード:
$activeText.stop().delay(5000);
動作しません...
ありがとうございました