2012-03-24 66 views
1

我在网上找到了一些用于在两个图片之间切换的Javascript代码,如在此example中点击它们时。当您点击它们时,在两个div对之间切换

现在我不知道如何实现使用divs与divs内的图片相同的结果。

无论是小图像还是大图像都会成为另一个div内形成边框的div的背景图像(我需要这样做才能设置图像的内边界半径,而我可以当我使用内部div并设置其边框半径)。所以,我有:

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

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

我怎么能告诉Javascript来这两个DIV夫妇,而不是图像之间进行切换?这里是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

+0

将不起作用,因为班级可能会改变,但不是它的内容 – giorgio 2012-03-24 14:59:59

+0

除非我误解了这个问题,它确实有效。这里是证明:http://jsfiddle.net/gq59E/ – JScoobyCed 2012-03-24 15:16:28

+0

如果你有图片作为背景,那么它会工作:)首先你应该解释,因为海报使用img标签,此外这如果您使用大量图像,这不是一个好的解决方案。这意味着为每个图像添加两个css类(大和小)。如果他有数百张图片怎么办? – giorgio 2012-03-24 17:14:08