我正在尝试使用javascript显示隐藏图片。代码工作正常,但图像显示在不同的位置。现在我想在同一个地方显示和隐藏图像。
<script type="text/javascript">
function showImage()
{
if(document.getElementById('check').checked==true)
{
document.getElementById("image").style.visibility = 'visible';
document.getElementById("images").style.visibility = 'hidden';
}
else if(document.getElementById('check').checked==false)
{
document.getElementById("image").style.visibility = 'hidden';
document.getElementById("images").style.visibility = 'visible';
}
}
</script>
<body onload="showImage()">
<font align="left">
<input type="checkbox" id="check" onclick="showImage()" />
Show Image
<div class="checkboxes" id = "image" >
<img class = "jive-image" height="125" src ="Tulips.jpg ">
</div>
<div id="images">
<img class = "jive-image" height="125" src="Desert.jpg">
</div>
</body>
怎么可能?
答案 0 :(得分:0)
这是因为你正在使用visibility
。 CSS的visibility
样式不会影响页面流。就好像您将opacity
设置为0.相反,您可能希望使用display
。
function showImage() {
if(document.getElementById('check').checked) {
document.getElementById("image").style.display = 'block';
document.getElementById("images").style.display = 'none';
} else {
document.getElementById("image").style.display = 'none';
document.getElementById("images").style.display = 'block';
}
};
答案 1 :(得分:0)
如果您使用display
样式,则可以从页面中删除图像,而不是像visibility
一样隐藏它。这意味着底部图像会被推高,因为第一个图像不再占用空间。将element.style.display
设置为'block'
以显示元素,将'none'
设置为隐藏它。
function showImage() {
if (document.getElementById('check').checked == true) {
document.getElementById("image").style.display = 'block';
document.getElementById("images").style.display = 'none';
} else if (document.getElementById('check').checked == false) {
document.getElementById("image").style.display = 'none';
document.getElementById("images").style.display = 'block';
}
}
答案 2 :(得分:0)
而是设置可见性,将显示设置为none或block。