gpt4 book ai didi

javascript - 交换gif时如何避免出现 "blink"?

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:50 24 4
gpt4 key购买 nike

我正在创建一个网站,当您滚动到某个区域时,会出现一个 gif。它只循环一次;如果你继续滚动,它会变成另一个 gif(也只播放一次) 如果你向后滚动,它会变成第一个 gif,重新启动它以便播放再次。

但是,当发生变化时,有一个我不想要的眨眼。这是 fiddle .这是 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');
}

});

});

我尝试从 background-image 中删除 ?v='+v+' 但每次更改时它都不会加载...有没有办法不眨眼地保持功能正常?

最佳答案

预加载第二张图片,闪烁来自图片的远程抓取时间。如果您之前在本网站的任何位置预加载过相同的图片,新图片将直接从浏览器的缓存中加载,并替换之前的图片,而不会出现任何可见的过渡。

$(window).ready(function () {
var v = 0;
var image = new Image();
image.src = 'http://i.imgur.com/TUAwA.gif';

$(window).on("scroll", function () {
/* ... */
}

}

关于javascript - 交换gif时如何避免出现 "blink"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38637035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com