2012-03-24 8 views
1

のように、exampleのように2つのJavascriptコードをクリックすると、ウェブ上でいくつかのJavascriptコードが表示されます。2つのdivカップルをクリックすると表示されます

今、私はどのようにdivsを使って同じ結果を達成するのだろうと思っています。

小さい画像と大きい画像の両方が、境界を形成する別のdivの内側にあるdivの背景画像になります(画像の内側の境界の半径を設定できるようにする必要があります。内側のdivを使用して境界線の半径を設定するとできます)。だから私は持っている:

<div class="bordersmallpicture"><div class="smallpicture"></div></div> 

<div class="borderlargepicture"><div class="largepicture"></div></div> 

をどのように私はこれら二つのdivのカップルの代わりに、画像を切り替えるには、Javascriptを伝えることができますか?ここで私はイメージが見つかりJavascriptのコードは次のとおりです。

<script> 
var imageURL = "small-picture.png"; 

if (document.images) { 
var smallpicture = new Image(); 
smallpicture.src = "small-picture.png"; 

var largepicture = new Image(); 
largepicture.src = "large-picture.png"; 
} 

function changeImage() { 
if (document.images) { 
    if (imageURL == "large-picture.png") {imageURL = "small-picture.png";} 
    else {imageURL = "large-picture.png";} 

    document.myimage.src = imageURL; 
} 
} 
</script> 

とHTML部分:

<a href="#" onclick="changeImage();"><img src="small-picture.png" name="myimage" title="Click to resize" alt="tree"></a> 

は、誰も私に上記のdivのカップルを切り替えるには、このコードを編集する方法のヒントを与えることができます? divを扱う際には全く新しいコードが必要でしょうか?

答えて

-1

クラスを切り替えるだけで済みます。クラスでのCSSの背景としてあなたのイメージを使用してrunning exampleを参照してください:

<div id="border-div" class="bordersmallpicture"> 
    <div id="image-div" class="smallpicture"></div> 
</div> 

Javascriptが次のようになります。

<script> 
function changeImage() { 
    var currentClass = document.getElementById('border-div').className; 
    if(currentClass == 'borderlargepicture') { 
    document.getElementById('border-div').className = 'bordersmallpicture'; 
    document.getElementById('image-div').className = 'smallpicture'; 
    } else { 
    document.getElementById('border-div').className = 'borderlargepicture'; 
    document.getElementById('image-div').className = 'largepicture'; 
    } 
} 
</script> 

あなたはjavascriptのをたくさん使用して予想される場合は、私はコードを容易に思われるのjQueryを使用することをお勧めします:

<script> 
function changeImage() { 
$('#border-div').toggleClass('bordersmallpicture').toggleClass('borderlargepicture'); 
$('#image-div').toggleClass('smallpicture').toggleClass('largepicture'); 
} 
</script> 

toggleClassする

(ここ exampleである)クラスをON/OFFオン
+0

は変更される可能性がありますが、内容は変更されません – giorgio

+0

質問が誤解されていない限り、動作します。ここに証拠があります:http://jsfiddle.net/gq59E/ – JScoobyCed

+0

イメージをバックグラウンドとして持っていればうまくいくはずです:)まず、ポスターがimgタグを使用しているので、これを説明する必要があります。あなたがたくさんの画像を使用するなら、良い解決策ではありません。これは、各画像に2つのCSSクラス(大小)を追加することを意味します。彼が数百のイメージを持っていたら? – giorgio

関連する問題