0

なぜうまくいかないのですか?!! ロード時に画像をフェードアウトさせたいのですが、これは jQuery で実行できることは知っていますが、このコードのどこにバグがあるか知りたいです。

<img src="http://1.bp.blogspot.com/-M03SoTLlJ4k/Vfwvq2dz42I/AAAAAAAAD9I/o-xN8x6HL2Y/s1600-r/Untitled-1%2B%25281%2529.png" onload="loadimage()" id="imageid"/>
<style>
#imageid {
opacity:0;
transition:1s;
}
</style>
<script>
function loadimage(){
document.getElementsByTagName("img").style.opacity="1"
}
</script>
4

2 に答える 2

2

getElementsByTagName単一のDOMノードではなくNodeListを返すgetElementsByTagName('img')[0]ため、たとえば最初のimgを取得してから、その要素にスタイルを適用する必要があります。

アップデート

すべての画像を選択

すべての画像を選択してスタイルを適用したい場合

function loadimage(){
   var imgElements = document.getElementsByTagName('img');
   for(var i=0, l=imgElements.length; i < l; i++) {
      imgElements[i].style.alpha = 1;
   }
}

現在ロードされている画像のみ(私が好む)

function loadimage(){
  this.style.alpha = 1;
}
于 2016-08-07T20:56:19.250 に答える
0

ジャバスクリプトでは、

document.getElementsByTagName('img')

を返しますnodelist

その の最初の項目nodelistが必要な場合は、次のように記述する必要があります。

document.getElementsByTagName('img')[0]
于 2016-08-07T20:56:28.227 に答える