【发布时间】:2011-04-14 12:18:53
【问题描述】:
我正在尝试使用 jQuery 和计时器(http://jquery.offput.ca/every/ 用作计时器)任意为图像设置动画,以模拟动画 GIF,但允许在 HTML 文件中定义动画(或在重复使用相同的“动画”图像的页面顶部)。
我编写了一个固定框架的特定版本:以下代码将使用 /path/to/image/dir/frame1.png 和 /path 的“动画”类交换图像/to/image/dir/frame2.png 每 300 毫秒。
<script type="text/javascript" src="jquery.timers.js"></script>
<script type="text/javascript">
;(function($){
$(function() {
var base_path = "/path/to/image/dir/";
var on = true;
$(".animate").everyTime(200, function(i) {
if(!on) {
$(this).attr({src: base_path + "frame1.png"});
} else {
$(this).attr({src: base_path + "frame2.png"});
}
on = !on;
});
});
})(jQuery);
</script>
我想做的是编写上述的通用形式,我可以在图像标签中放置以下内容
<img src="/path/to/fallback/image.png" class="animate {interval:300, src:[frame1.png,frame2.png]}" alt="animated image" />
并且脚本可以使用传递给类属性的参数来确定每帧的持续时间和源图像。最初我只想在两个图像之间交替,但理想情况下我想让 src 数组包含任意数量的图像,这些图像将无限循环(即不需要用户交互)。
有什么想法可以实现吗?我猜我需要对类属性进行某种形式的键值解析,这在语义上可能不正确,那么是否有另一个(有效但很少使用)属性可以用来存储动画属性?
【问题讨论】:
标签: jquery image jquery-animate