【发布时间】:2012-06-26 10:12:57
【问题描述】:
<script type="text/javascript">
jQuery(document).ready(function(){
setTimeout(function(){
jQuery('.my-image').each(function(){
jQuery(this).greyScale({
fadeTime: 200,
reverse: false
});
$(this).animate({ 'opacity' : 1 }, 1000);
$(this).load(function(){
jQuery(this).greyScale({
fadeTime: 200,
reverse: false
});
$(this).animate({ 'opacity' : 1 }, 1000);
});
});
}, 200);
});
</script>
在上面的示例中,我使用 grayScale() 函数将图像复制到画布中并保留两个版本(灰色 = 默认,颜色 = 悬停)。
它在 99% 的情况下都能正常工作,但是当浏览器首次运行时,它有时无法加载 1 张图片、2 张图片或类似的东西。就像“加载”和“正常事件”都失败了。
有人可以确认我是否做得对吗?如果图像已经存在或者不存在,我会尝试加载该事件,然后有替代的“load()”以确保它在加载后执行。从逻辑上讲,这似乎是一个很好的解决方案。
【问题讨论】:
-
三个非常好的答案。每一个都有帮助。非常感谢你们!我将最广泛的一个标记为最好的,但这里所有的都是最好的:)
标签: javascript jquery image load