django JavaScript中的动画图片,问题:闪烁屏幕和调整大小

wyyhbhjk  于 2022-11-18  发布在  Go
关注(0)|答案(2)|浏览(120)

正如我在标题中提到的,我在将我的动画正确嵌入到我的Django项目中时遇到了问题。
在某个时候,我决定更新我的网页内置的Django使用的徽标。有了一点JavaScript的经验,我在寻找适合我需要的方法。我建立了一个有一些灵感的动画引擎from this StackOverflow answer.(感谢用户gilly 3
不过,我的方法在这个主题中是不同的,因为我意识到如果我有很多图片,那么将它们粘在一起/连接在一个文件中可能会很困难。我决定使用另一种方法,使用一堆文件而不是一个文件。为此,我用一个生成器构建了一个函数,我可以调用另一个函数来按顺序显示所有图片。这个 * 动画引擎 * 看起来像这样:

function* indexGenerator() {
    let index = 1;
    while (index < 28) {
        yield index++;
    }
    if (index = 28)
        yield* indexGenerator();
  };

var number = indexGenerator();

setInterval(function animationslider()
{
    var file = "<img src=\"../../../static/my_project/logos/media/slides_banner_f/slide_" + number.next().value + ".jpg\" />";
    document.getElementById("animation-slider").innerHTML = file;
    
    $("#animation-slider").fadeIn(1000);
    
    
}, 100);

$("#animation-slider").fadeIn(1000);对于10-1000之间的值不起作用。https://youtu.be/RVBtLbBArh0
我怀疑第一个重定位问题的解决方案可以使用CSS来解决,但我还不知道如何做。
动画的闪烁可能是因为一个一个加载所有这些图片造成的,在上面的示例视频中,有28个,我想知道这些内容是否会异步加载(例如使用** AJAX **)是否可以解决问题?是否可以加载所有内容,并在加载所有内容后,然后显示动画(某种预加载)?我将感谢所有的建议和提示。
我知道在我之前提到的主题中有一个解决方案。但我对其他的方法很好奇。

cygmwpex

cygmwpex1#

目前,从我检查,最好的方法将图片转换为格式:

有了那种文件,加载和闪烁就没有问题了。

zxlwwiss

zxlwwiss2#

闪烁是指创建dom元素、将其插入页面、发出下载图像的Web请求以及最后渲染图像所花费的时间。在您希望动画显示下一帧的时刻,要做的工作太多了!如果客户端与服务器之间的连接不好,则运行时的效果会更差。
要解决这个问题,请预先载入所有的图像。这是精灵的优点-它会一次载入所有的图像。但是,如果您有个别的图像,您仍然可以预先载入它们。只要先隐藏它们,然后逐一显示即可。
一次显示一个子图像的方法之一是设置一个样式,隐藏除第一个子图像之外的所有子图像。然后,要制作动画,将第一个图像移动到列表的末尾。
第一个
下面是一个工作示例,使用我自己的图像:
第一个

相关问题