2017-02-02 9 views
0

次のコードでは、Javascriptで使用されるイメージの位置を設定できません。JavaScriptからイメージ位置を設定する方法

document.getElementById("dis").disabled = true; 
 
var counter = 0; 
 
var x = document.getElementById("myDIV"); 
 
var y = document.createElement("img"); 
 
var y1 = document.createElement("img"); 
 
var y2 = document.createElement("img"); 
 
var xy = document.createElement("img"); 
 

 
function myFunction() { 
 
    document.getElementById("dis").disabled = false; 
 
    counter++; 
 
    if (counter % 2 == 0) { 
 
    if (y && xy && x) { 
 
     y.style.display = 'none'; 
 
     xy.style.display = 'inline'; 
 
     xy.setAttribute("src", "line.png"); 
 
     xy.setAttribute("width", "75"); 
 
     xy.setAttribute("height", "3"); 
 
     xy.setAttribute("style", "margin:a b c d"); 
 
     document.body.appendChild(xy); 
 
    } 
 
    } else { 
 
    xy.style.display = 'none'; 
 
    y.setAttribute("src", "circle.png"); 
 
    y.setAttribute("width", "236"); 
 
    document.body.appendChild(y); 
 
    y.style.display = 'inline'; 
 
    } 
 
}
<button id="dis" onclick="myFunc()">Click me</button> 
 
<img src="num1.png" style="position:absolute;top:80px;" onclick="myFunction()" /> 
 
<div id="myDIV"> 
 
</div> 
 
<p id="demo"></p>

私は位置決めのための以下のコードを試してみましたが、そのは正常に動作しません。

y.setAttribute("style", "margin-left:100px;"); 
y.setAttribute("style", "margin-top:-60px;"); 
+2

あなたは何をしようとしているのかよく分かりませんが、margin-leftとmargin-topは属性ではなくCSSスタイルです。したがって、 'y.style.marginLeft = '100px';'を使うべきです。これはjQueryタグが完全に無関係なので、jQueryタグを削除したことに注意してください。変数を意味のある名前にすることを強くお勧めします。 'xy'、' y'などはすべて無駄になります。 –

答えて

0

あなたはstyleプロパティを使用してDOM要素のためのあなたのCSSスタイルプロパティにアクセスする必要があり、例:

y.style.marginLeft = '100px'; 
y.style.maringTop = '-60px'; 

代わりため、DOM要素またはその値の属性を変更するために使用することができElement.setAttribute()imageの例では、src属性を変更できますが、setAttributeはCSSプロパティでは機能しません。あなたのコメント次

y.setAttribute("src", "anUrl.png"); 

編集:

y.classList.add('yourCssClass')

の詳細:あなたが使用してDOM要素にCSSクラスを適用することができます

、CSSクラスを適用したいスタイルが含まれています情報can be found here

+0

y.style.marginLeft = '100px'; y.style.maringTop = '-60px'; 上記のコードは常に動作していません。その代わりに、CSSから画像を配置することは可能ですか? –

+0

@ M.Kalidass私はあなたのDOMにCSSクラスを追加する方法を示す、私の答えを編集しました。ハッピーコーディング! – GibboK

関連する問題