Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何避免;眨眼;交换礼物的时候?_Javascript_Jquery_Css_If Statement_Gif - Fatal编程技术网

Javascript 如何避免;眨眼;交换礼物的时候?

Javascript 如何避免;眨眼;交换礼物的时候?,javascript,jquery,css,if-statement,gif,Javascript,Jquery,Css,If Statement,Gif,我正在创建一个网站,当您滚动到某个区域时,会出现gif。它只循环一次;如果继续滚动,它将变为另一个gif(也只播放一次)。如果向后滚动,它将变为第一个gif,重新启动,以便可以再次播放 然而,当改变发生时,有一个我不想要的眨眼。这是你的电话号码。下面是javascript: $(window).ready(function() { var v = 0; $(window).on("scroll", function() { var scrollTop = $(this).scr

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

然而,当改变发生时,有一个我不想要的眨眼。这是你的电话号码。下面是
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');
    }

  });

});
$(窗口).ready(函数(){
var v=0;
$(窗口).on(“滚动”,函数(){
var scrollTop=$(this.scrollTop();
如果(scrollTop>100&&scrollTop<200){
if($('#container').attr('data-img')!='http://i.imgur.com/Hhmt8.gif') {
++五,;
$('#container').attr('data-img','http://i.imgur.com/Hhmt8.gif');
$('#container').css('background-image','url')(http://i.imgur.com/Hhmt8.gif?v="v+"),;
}
}否则如果(滚动顶部>=200){
if($('#container').attr('data-img')!='http://i.imgur.com/TUAwA.gif') {
++五,;
$('#container').attr('data-img','http://i.imgur.com/TUAwA.gif');
$('#container').css('background-image','url')(http://i.imgur.com/TUAwA.gif?v="v+"),;
}
}否则{
$('.imageHolder').css('background','blue');
}
});
});

我试图从
背景图像中删除
?v='+v+'
,但它不会在每次更改时加载。。。有没有办法在不闪烁的情况下保持其功能?

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

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

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

}

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

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

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

}

预加载它们……它不会产生动画。将显示最后一帧。你可以看到这一点,明白我的意思。在这里,你一眨眼也不眨眼,但GIF只会在超过它们后发生……它不会产生动画。将显示最后一帧。你可以看到这一点,明白我的意思。在这里你没有眨眼,但是GIF只发生在眼睛上,但是如果缓存替换了前一个,它将不会动画。图像将是gif的最后一帧。你可以看到这一点,明白我的意思。在这里,你不会眨眼,但是GIF只会发生一次,不使用变量中的图像,只需第二次加载图像,就好像你要从服务器获取图像一样,就像你以前做的那样。浏览器将加载图像并播放动画,但不必先通过网络获取。如您所说尝试过,但无效。。。检查它是否仍然闪烁如果您在URL中添加一个不断变化的“querystring”,这意味着每次都会通过网络加载图像。如果要完全消除闪烁,必须通过一些步骤扩展脚本,包括将两个图像加载到2个容器中并切换它们,例如通过更改z索引。例如,您可以向JavaScript中的“Image()”对象添加一个“onload”处理程序,并处理此类函数中的所有操作。此外,图像都大于1MB,这增加了一些额外的问题。很抱歉,我没有时间创建解决方案。是的,但是如果缓存替换上一个,它将不会设置动画。图像将是gif的最后一帧。你可以看到这一点,明白我的意思。在这里,你不会眨眼,但是GIF只会发生一次,不使用变量中的图像,只需第二次加载图像,就好像你要从服务器获取图像一样,就像你以前做的那样。浏览器将加载图像并播放动画,但不必先通过网络获取。如您所说尝试过,但无效。。。检查它是否仍然闪烁如果您在URL中添加一个不断变化的“querystring”,这意味着每次都会通过网络加载图像。如果要完全消除闪烁,必须通过一些步骤扩展脚本,包括将两个图像加载到2个容器中并切换它们,例如通过更改z索引。例如,您可以向JavaScript中的“Image()”对象添加一个“onload”处理程序,并处理此类函数中的所有操作。此外,图像都大于1MB,这增加了一些额外的问题。很抱歉,我没有时间创建解决方案。