【发布时间】:2011-04-13 08:56:46
【问题描述】:
我正在研究使用 CSS 精灵,但不想发明轮子。 jQuery 或 jQuery UI 中是否存在现有支持?或者作为替代方案,一个调试良好的 jQuery 插件
【问题讨论】:
-
您要完成哪些具体任务?
-
只是为了把网页应用上的一些图片转成精灵,让页面加载更高效
标签: jquery jquery-ui css-sprites
我正在研究使用 CSS 精灵,但不想发明轮子。 jQuery 或 jQuery UI 中是否存在现有支持?或者作为替代方案,一个调试良好的 jQuery 插件
【问题讨论】:
标签: jquery jquery-ui css-sprites
使用精灵取决于你想要的位置部分的偏移量——javascript无法访问图像数据,那么怎么会有这样的事情呢?
有一些工具可以帮助您制作精灵并为您提供基本的 CSS。这是我最喜欢的:
【讨论】:
有一些不错的jquery-tool demos可以复制修改。他们有很好的做法。我将从tab anchor 演示开始,他们的stylesheet 写得很好。
@Mark:标签演示使用one image
【讨论】:
根据您想要完成的特定任务(您未在 OP 中指定),您可能根本不需要插件。
在 jQuery 中使用精灵的一种可能方法是为每个精灵状态创建一个单独的类,然后使用 jQuery 更改显示精灵的元素的类属性 .attr():
// Change the sprite state of an element
$(elementSelector).attr("class", spriteClassOfChoie);
例如,这是一个使用 sprite 和 jQuery 的超级简单的图片库:
脚本:
$(function() {
// The sprite classes
var sprites = ["home", "next", "prev"];
// Which image is showing
var showing = 0;
// Show the first image
$("#gallery").addClass(sprites[showing]);
// Add a click handler to change sprite states
$("input").click(function() {
// Cycle through images by making use of sprites
$("#gallery").attr("class", sprites[(++showing % sprites.length)]);
});
});
HTML:
<input type="button" value="Show Next Image" />
<br/><br/>
<div id="gallery"></div>
CSS:
.home {
width:46px;
height:44px;
background:url('http://i.stack.imgur.com/vPDBk.gif') 0 0; }
.next {
width:43px;
height:44px;
background:url('http://i.stack.imgur.com/vPDBk.gif') -47px 0; }
.prev {
width:43px;
height:44px;
background:url('http://i.stack.imgur.com/vPDBk.gif') -91px 0; }
【讨论】:
为什么不全部用 CSS 来完成呢?啊啦:
btn
{
width:50px;
height:50px;
background:url(images/btnspite.png) -30px 100px;
}
btn:hover
{
background-position:-30px -150px;
}
btn:active
{
background-position:-30px -200px;
}
这将使您开始实际实施它:http://css-tricks.com/css-sprites/
【讨论】:
ctr-k 以快速完成此操作。