作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这段代码,我希望只有在加载 backgroundImage 后才会弹出警报。
$('#element').click(function(){
$('#element').css({
backgroundImage: "url('http://www.button.jpg')",
backgroundRepeat: 'no-repeat',
backgroundPosition: '7px 5px'});;
alert ("button is loaded");
button.jpg
很小:3 KB。
但是当我单击按钮元素时,首先会弹出警报,并在图像完成加载后 2 秒弹出。
我读到了有关 callBack 的内容
还有关于 Delay()
还有关于超时
但我是编码新手,不明白我应该在这里做什么以及如何做。
最佳答案
您首先要在图像上设置一个load
事件。
var imgSrc = 'http://www.button.jpg';
$('#element').click(function() {
var img = new Image,
element = $(this);
img.onload = function() {
element.css({
backgroundImage: "url('" + imgSrc + "')",
backgroundRepeat: 'no-repeat',
backgroundPosition: '7px 5px'
});
alert("button is loaded");
}
img.src = imgSrc;
});
jsFiddle .
然后,当图片加载完成后,将调用加载回调并更新背景。
如果您需要支持 IE6 并且发现它无法通过再次下载图像进行合作,您可能需要查看 workaround .
关于javascript - 如何让 Alert 在加载图像后运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6392914/
我是一名优秀的程序员,十分优秀!