Ich erstelle eine Website, auf der, wenn Sie in einen Bereich scrollen, ein gif
erscheint. Es wird nur einmal durchlaufen; Wenn Sie mit dem Scrollen fortfahren, ändert sich die Anzeige in einen anderen gif
(der auch nur einmal abgespielt wird). Wenn Sie zurückrollen, wird der erste gif
angezeigt und neu gestartet, damit er erneut abgespielt werden kann.Wie man das "Blinzeln" vermeidet, wenn Gifs ausgetauscht werden?
Wenn jedoch die Änderung auftritt, gibt es ein Blinzeln, das ich nicht will. Hier ist die fiddle. Und hier ist die javascript
:
$(window).ready(function() {
var v = 0;
$(window).on("scroll", function() {
var scrollTop = $(this).scrollTop();
if (scrollTop > 100 && scrollTop < 200) {
if ($('#container').attr('data-img') != 'http://i.imgur.com/Hhmt8.gif') {
++v;
$('#container').attr('data-img', 'http://i.imgur.com/Hhmt8.gif');
$('#container').css('background-image', 'url(http://i.imgur.com/Hhmt8.gif?v=' + v + ')');
}
} else if (scrollTop >= 200) {
if ($('#container').attr('data-img') != 'http://i.imgur.com/TUAwA.gif') {
++v;
$('#container').attr('data-img', 'http://i.imgur.com/TUAwA.gif');
$('#container').css('background-image', 'url(http://i.imgur.com/TUAwA.gif?v=' + v + ')');
}
} else {
$('.imageHolder').css('background', 'blue');
}
});
});
Ich versuchte, die ?v='+v+'
aus den background-image
entfernen, aber dann wird es nicht geladen wird jedes Mal ändert ... Gibt es eine Möglichkeit, die Funktion zu halten, wie es ohne zu blinken ist?
laden Sie sie ...... –
wird es nicht animieren. Der letzte Frame wird angezeigt. Sie können dies [Geige] (https://jsfiddle.net/lj_tang/qynvg44b/11/) und [dieses] (https://jsfiddle.net/qynvg44b/19/) sehen, um zu sehen, was ich meine. Da hast du kein Blink, aber die Gifs passieren nur einmal. – Caro