Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript的图像可见性_Javascript - Fatal编程技术网

使用javascript的图像可见性

使用javascript的图像可见性,javascript,Javascript,我想使用切换图像,如果其他不起作用,请有人解释一下代码有什么问题 <img src="img/somepic.jpg" id="pic"><br/> <a href="javascript:toggleImg()">Toggle Image</a> <script> function toggleImg(){ var img = document.getElementById('pic'); var checkF

我想使用
切换图像,如果其他
不起作用,请有人解释一下代码有什么问题

<img src="img/somepic.jpg" id="pic"><br/>

<a href="javascript:toggleImg()">Toggle Image</a>

<script>

function toggleImg(){
    var img = document.getElementById('pic');

    var checkForVisible = img.style.visibility == "visible";

    if(checkForVisible == "visible"){
        img.style.visibility = "hidden";
    }
    else{
        img.style.visibility = "visible";
    }

}

</script>
它成功了。我只想知道“if-else”代码不起作用。谢谢你这么做:

var checkForVisible = img.style.visibility == "visible";
==“visible”使它成为equals表达式的结果,因此它将是true或false

您的if/else is checkForVisible==“visible”将不起作用,因为is将只为true或false。你只需要比较一次

if(img.style.visibility == "visible"){
        img.style.visibility = "hidden";
    }
    else{
        img.style.visibility = "visible";
    }

使用
切换
而不是
if-else
function toggleImg(){
var img=document.getElementById('pic');
img.classList.toggle('hidden');
}
。可见{
显示:块;
}
.隐藏{
显示:无;
}



有错误。例如,在checkForVisible变量中,我不确定您试图做什么,但有太多的相等项。 您可以尝试以下方法:

function toggleImg(){
    var img = document.getElementById('pic');

    img.style.visibility = "visible";

    if(img.style.visibility === "visible"){
        img.style.visibility = "hidden";
    }
    else{
        img.style.visibility = "visible";
    }

}

checkForVisible
是一个布尔值,出于某种原因,您再次将其与
“visible”
进行比较。只需使用
if(checkForVisible)
。下面的答案是正确的,特别是使用toggle,但您应该尝试使用调试器单步执行代码,并在
if(checkForVisible==“visible”)上设置断点{
查看var checkForVisible的值。学习如何执行此操作将允许您在将来亲自调试这些问题。
function toggleImg(){
    var img = document.getElementById('pic');

    img.style.visibility = "visible";

    if(img.style.visibility === "visible"){
        img.style.visibility = "hidden";
    }
    else{
        img.style.visibility = "visible";
    }

}