ich habe:Einfache verblassende Divs mit JS
var t_out;
var idx = 0;
function cycleReviews() {
clearTimeout(t_out);
t_out = setTimeout(function() {
console.log(idx)
$('#review_' + idx).animate({opacity: '0'}, function() {
$('#review_' + idx).addClass('hide');
$('#review_'+ (idx+1)).css('opacity', '0.0').removeClass('hide').animate({opacity: '1.0'});
idx++;
});
if(idx == 2) {
console.log('reload')
idx = -1;
}
cycleReviews();
}, 2000);
}
Um durch drei divs, ihnen einen zum anderen verblassen.
Ich habe Probleme, es richtig zu funktionieren, wenn es neu startet (geht zurück zur ersten Folie, idx 0).
Wie kann ich das richtig funktionieren lassen?
Fiddle:
'use strict';
var obj = [{'id': 0, 'review': 'Test1', 'author': 'Bob1'},{'id': 1, 'review': 'Test2', 'author': 'Bob2'},{'id': 2, 'review': 'Test3', 'author': 'Bob3'}];
$(function() {
var html = '';
var first = true;
$.each(obj, function (i, v) {
html += '<div id="review_' + i + '" class="review ' + (first ? '' : 'hide') + '">';
html += '<p>' + v.review + '</p>';
html += '<p class="small">' + v.author + '</p>';
html += '</div>';
first = false;
})
$('#review_container').html(html);
cycleReviews();
var t_out;
var idx = 0;
function cycleReviews() {
clearTimeout(t_out);
t_out = setTimeout(function() {
console.log(idx)
$('#review_' + idx).animate({opacity: '0'}, function() {
$('#review_' + idx).addClass('hide');
$('#review_'+ (idx+1)).css('opacity', '0.0').removeClass('hide').animate({opacity: '1.0'});
idx++;
if(idx == 2) {
console.log('reload')
idx = 0;
}
cycleReviews();
});
}, 2000);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="container text-center home-2">
<h1 class="hero">Customer Reviews</h1>
<div class="bullets"><span id="bullet_1">•</span> <span id="bullet_2">◦</span> <span id="bullet_3">◦</span></div>
<div id="review_container">
</div>
<p class="green">A happy client</p>
</div>
Indem wir können Sie es einen JSFiddle oder Ihren Code so testen und helfen, –
) Das ist eine ziemlich dumme Art und Weise ist etwas so einfaches wie eine einzelne Eigenschaft zu animieren. Ich würde vorschlagen, dass Sie all dies entfernen, eine einzige CSS-Keyframe-Animation für die Deckkraft erstellen und sie mit "Übergangsverzögerung" ausführen, indem Sie den Elementen Klassen hinzufügen. – mystrdat
Einstellung auf -1 macht keinen Sinn – epascarello