【问题标题】:Animated gif starting on scroll从滚动开始的动画 gif
【发布时间】:2014-08-06 05:17:19
【问题描述】:

我制作了 4 个动画 gif,我希望它们从用户的滚动开始。

我所做的是使用这个:

$(function () {
    var screen = $(".screen");
    $(window).scroll(function () {
        var scroll = $(window).scrollTop();

        if (scroll >= 1500) {
            screen.css('display','block');
        } else {
            screen.css('display','none');
        }
    });
});

我尝试不显示任何内容并通过滚动阻止 gif,效果很好,问题是当我显示阻止时 gif 不是从头开始,它是从动画中间的某个地方开始的。

当我显示块时,如何使 gif 完全从第一帧开始?

非常感谢!

【问题讨论】:

  • 你不能“重启”一个 gif,除非你每次都从服务器重新获取它(你不希望那样)。一种解决方案是使用 data-uris 并重新应用 src

标签: jquery css animation gif animated-gif


【解决方案1】:

您的代码会隐藏和显示图像,但不会重新加载图像。相反,您应该更新您的 src 属性,或者简单地重新分配相同的图像。

$(this).attr("src",$(this).attr("src"))

One simple solution would be 

if (scroll >= 1500) {
   screen.attr('src',screen.attr('src')); // update its src, this reloads the img
} else {
   screen.css('display','none');
}

【讨论】:

  • 嘿,谢谢!做到了,我应该在“else”中添加什么,以便在滚动 1500 像素后停止刷新?
猜你喜欢
  • 2014-10-31
  • 1970-01-01
  • 2015-05-04
  • 2018-03-19
  • 2011-11-14
  • 2020-04-09
  • 2021-07-28
  • 2022-11-19
  • 1970-01-01
相关资源
最近更新 更多