2016-08-16 56 views
0

我想讓我網站上的所有圖片在加載完 時都有「Fadein」效果,那麼這段代碼有什麼問題? !js代碼需要調整

<img 
src="http://1.bp.blogspot.com/-M03SoTLlJ4k/Vfwvq2dz42I/AAAAAAAAD9I/o-xN8x6HL2Y/s1600-r/Untitled-1%2B%25281%2529.png" id="image_id"/> 
<style> 
#image_id { 
opacity:0; 
transition:1s; 
} 
</style> 
<script> 
var i; 
var x = document.getElementsByTagName("img"); 
for (i = 0; i < x.length; i++) { 
    document.getElementsByTagName("img")[i].addEventListener("load", imgfadein); 
    }; 
function imgfadein() { 
x[i].style.opacity = "1";   
} 
</script> 
+2

的可能的複製[JavaScript的閉合環內 - 簡單實用示例](http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) – Xufox

回答

2

在你的代碼,當事件處理程序運行,ix.length,所以x[i]沒有設置。

當事件偵聽器函數運行時,this是它綁定到的元素。使用this而不是x[i]

function imgfacein() { 
    this.style.opacity = "1"; 
} 
+0

它工作^ _^ 謝謝<3 <3 –