将 CSS 精灵用于“幻灯片”元素
Using CSS Sprites for 'slideshow' elements?
在网页上有一个带有一些广告的块(大约3-4张图片的幻灯片)。图像不是从数据库或类似的东西加载的 - 它们是静态的。图像应该自我改变。
我有 2 个想法来做到这一点:
- 通过
new Image()
在JS中预加载图像。并通过更改src
属性进行切换 - 将此图像合并为 1 个子画面并更改图像的背景位置
什么方法更快更好?
附言我以第二种方式看到负面部分,如果需要更改或添加图片 - 应该重新制作整个精灵。
精灵对于许多较小的图像是有益的,可以节省http请求的数量,因为它有一些开销。如果您打算显示大型JPG/PNG,那么您应该考虑,如果它们处于精灵模式,则用户必须预先下载所有图像,如果它们被拆分,他们将能够看到第一个图像,而您在后台加载其他图像。
选项 2 更适合不经常更改的内容,例如导航元素。如果这些经常变化,我会说选择选项 1,因为您提到的缺点。
编辑:
实际上,您可以使用/创建一个图像旋转器,该旋转器读取某个目录中的所有图像文件并自动旋转它们。这可能是最简单的维护。
正如您在后记中建议的那样,选项 2 对于维护来说较差。将精灵用于不经常更改的内容(即设计元素)更容易,特别是对于按钮和图标等小元素,将其包含在单个图像中更有效。
如果你使用的是jQuery,有几个插件可以很好地处理图像过渡。我推荐的一个是jquery Cycle与缓动插件相结合
我会选择第二种方式和一些像 http://css.spritegen.com/这样的网站为我做精灵。
如果你已经在你的网站上使用了JavaScript库,比如jQuery,你可以使用一个流行的插件,如jQuery Cycle,轻松地完成这个任务。
好处是,您将获得易于维护的标记,并且不必[必然]担心预加载图像或处理复杂的CSS精灵。另外,向幻灯片添加更多图像只是向HTML添加更多<img />
标签的问题。
标记的工作示例如下所示:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery Cycle Basic Demo</title>
<style type="text/css">
#slideshow { height: 200px; width: 200px; overflow: hidden; }
</style>
</head>
<body>
<div id="slideshow">
<img src="http://cloud.github.com/downloads/malsup/cycle/beach1.jpg" alt="" />
<img src="http://cloud.github.com/downloads/malsup/cycle/beach2.jpg" alt="" />
<img src="http://cloud.github.com/downloads/malsup/cycle/beach3.jpg" alt="" />
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://malsup.github.com/jquery.cycle.all.js"></script>
<script>
$('#slideshow').cycle({
next: '#next',
prev: '#prev',
speed: 750,
timeout: 3000
});
</script>
</body>
</html>
- 更好的解决方案HTML元素幻灯片从右侧CSS转换
- 如何在Slick Carousel中获取活动中的幻灯片元素
- 仅对特定的html元素启用幻灯片放映
- 在幻灯片放映时检测元素具有特定类
- 简单的jQuery幻灯片只重复一个元素
- 单击幻灯片中的跨度元素时,防止滑块切换幻灯片
- JQuery幻灯片切换,折叠子元素
- 使用 javascript 暂停背景滚动以允许固定元素进行幻灯片放映
- 是否可以在可见性隐藏元素上对幻灯片进行动画处理
- 如何更改网站正文元素的背景以与幻灯片放映相对应
- 幻灯片仅切换单击的元素
- 不使用包装器元素的 Javascript 幻灯片库
- 如何在显示隐藏元素时在 JQuery 中制作幻灯片动画
- 如何在 owl-carousel 幻灯片中查找视频元素,然后仅为该特定幻灯片设置 owl-carousel 控件的 cs
- 如何指定元素的显示和隐藏幻灯片方向
- 整页.js - 用于控制幻灯片并保持固定在同一位置的导航元素
- 将类活动设置为下一个幻灯片元素
- 简单的jquery幻灯片元素
- 工具提示 jQuery 显示在幻灯片元素之外
- 将 CSS 精灵用于“幻灯片”元素