我正在显示个人资料图片。如果该图像大于某个尺寸我想缩放它,所以我将onload事件附加到该图像。在图像加载后,我将检查它是否更大,如果是,那么我将它缩放到一个较小的图像。我正在显示加载动画,直到图像加载。
<td height="203" valign="middle" align="center"><div id="loadingdiv">Loading...
</div><img style="display:none;" id="proimg" src="<?=$path?>" />
</td>
<script type="text/javascript">
var pro = document.getElementById('proimg');
pro.onload = function()
{
if(this.width>260)this.style.width = '260px';
if(this.height>200)this.style.height = '200px';
window.setTimeout(function() {
document.getElementById('loadingdiv').style.display = 'none';
this.style.display = 'inline';
},1000);
}
</script>
加载动画将淡出,一秒钟后图像将可见。这就是我想要的,所以我就像上面那样做了。但是如何将onload的这个引用到settimeout事件处理程序?
没有settimeout它工作正常,我可以使用它,但我只是想显示延迟。
修改
我习惯做第一次回复。但我认为应该采用另一种方式或概念来做这件事。
我可以在这里使用封闭装置吗?因此,我不必使用额外的可变参考。
答案 0 :(得分:2)
您不能在匿名事件句柄函数中使用此键盘,但您仍然可以引用当前的这个,然后使用该引用来调用对象上的方法/属性。这是一个例子:
var that = this;
window.setTimeout(function() {
that.style.display = 'inline';
}, 1000);