首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雪碧与效益

雪碧与效益
EN

Stack Overflow用户
提问于 2013-10-08 14:57:24
回答 2查看 90关注 0票数 0

什么时候使用精灵什么时候不使用它

我有50个图标,这是我作为一个精灵,但当我发现我需要1-3的图标在一次页面加载和一个图标的大小为400-500字节和总雪碧有28 as的大小时,我有疑问。

什么是性能最好的加载他们个人或在一个雪碧和您节省了多少与减少http调用?(ofc取决于您离服务器有多远,但它是他们的算法,我可以将其放入其中并计算负载的成本效益因子)

除了在活动服务器上执行基准测试之外,在这种情况下也是不可行的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-08 15:09:25

这完全取决于用户的行为,或者更确切地说,取决于您的普通用户(AU)的行为。

如果AU去你的网站两次,它将更快,只是加载你需要的图标。如果AU经常访问您的站点,并访问许多不同的页面(这需要您的雪碧中的大多数图像),那么最好使用一个sprite。

大多数浏览器都会缓存您的sprite,因此无论如何它只需要加载一次。(对于个别图像也是如此)

28 Kb真的没有那么大,所以我个人会走雪碧路线,除非你有很多低带宽的用户。

票数 1
EN

Stack Overflow用户

发布于 2013-10-09 08:45:11

我的错,我不知道你想控制你的身体。使用.gif动画,您无法控制它,当它加载时,它就会运行。

但是,正如您所说的,您只需使用background: url()图像就可以制作精灵。

您可能需要对精灵进行变体;例如:当您只需要3帧时,您可以用这3帧制作一个精灵。因此,浏览器必须加载的sprite的大小并不像完整的sprite那么大。

代码语言:javascript
复制
var frame = 1;

$('.back').attr("disabled", true);  

$(".next").click(function(e)         
{
    $('.back').attr("disabled", false);   
    $('.sprite').animate({backgroundPositionX: "+=-43px"}, 1);
    frame += 1;
    if(frame == 6)
    {
        $('.next').attr("disabled", true);   
    }
})

$(".back").click(function(e)         
{
    $('.next').attr("disabled", false); 
    $('.sprite').animate({backgroundPositionX: "+=43px"}, 1);

    frame -= 1;
    if(frame == 1)
    {
        $('.back').attr("disabled", true);   
    }
})

现在我只用X轴来做这个,所以有一行精灵。

这里就是一个例子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19251237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档