【问题标题】:jQuery combine a selection of pngs to one image timeline animationjQuery 将一组 png 组合到一个图像时间轴动画中
【发布时间】:2012-09-17 22:56:53
【问题描述】:

由于文本上的白色边框以及其他像素化和抖动问题,GIF 图像很难制作动画。因此,尽管 IE 上缺乏对 PNG 的支持,尤其是 fadeInfadeOut jQuery 对 PNG 的影响导致黑色边框这样做,但我还是决定了。

我有一个类似的文件夹

/cdn.com/ui/photo/1.png
/cdn.com/ui/photo/2.png
/cdn.com/ui/photo/3.png

这是我的 HTML 代码,有没有办法添加延迟或以某种方式循环并更改 1-38 的源并继续循环它 - 甚至可以自定义延迟?我只是希望它像完全加载的 gif 一样流畅地循环播放..

<div class="m2m_badge">
    <a href="#"><img src="///cdn.com/ui/photo/1.png"/></a>
</div>

这是我的 jQuery

$(function()
{
    var i = 0;
    var interval = setInterval(function()
    {
        $('div.m2m_badge a img').attr({ src: '//gc-cdn.com/ui/m2m/' + i + '.png' });
        i++;
        if(i === 38)
            clearInterval(interval);
    }, 250);
});  

演示 - http://jsfiddle.net/tXvuY/13/

【问题讨论】:

    标签: jquery png gif animated-gif


    【解决方案1】:
    $(function()
    {
        var i = 1;
        var interval = setInterval(function()
        {
            $('div.m2m_badge a img').attr({ src: 'http://www.gc-cdn.com/ui/m2m/' + i + '.png' }); 
            i++;
            if(i === 38)
                clearInterval(interval); //38 images has been shown, stop the interval
        }, 50); //50ms between each swap
    });    
    

    这是demo

    最后的工作

    要获得连续循环,只需在 interval if 中添加 i=1;

    $(function()
    {
        var i = 1;
        var interval = setInterval(function()
        {
            $('img').attr({ src: 'http://www.gc-cdn.com/ui/m2m/' + i + '.png' });
            i++;
            if(i === 38)
                i=1; // SOLUTION
        }, 250); 
    });   
    

    【讨论】:

    • 我可以阻止它在循环中闪烁最后一个图像并重新开始 - 只是让它看起来保持不变......就像这里 - jsfiddle.net/tXvuY/10
    • 不要只发布一段代码,请解释为什么这段代码可以解决所提出的问题。没有解释,这不是答案。
    • 谢谢,不完全是。我只是希望它在不闪烁的情况下平稳地循环通过 1-38 ... 仅在 38 之后停止
    • @TheBlackBenzKid 是的,当我从答案中删除数组时,我忘了更改它。但它更新了
    • @TheBlackBenzKid 如果图像在用户第一次访问页面时闪烁,我建议预加载它们:stackoverflow.com/questions/476679/… 只是一个提示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多