0

こんにちは、私はこのコードをjavascriptで持っています。緑、赤などの通常の色では完全に正常に機能しますが、rgbaでは機能しません。助けてください。これは私のスニペットです

<div id="div" onclick="color()" style="width:100px; height:100px; border:2px solid black; background-color:rgba(0, 255, 51, 0.33)"></div>

<script>
function color(){
    if(document.getElementById("div").style.backgroundColor == "rgba(0, 255, 51, 0.33)"){
    document.getElementById("div").style.backgroundColor="rgba(0, 153, 255, 0.33)";
    }
    }
</script>
4

1 に答える 1

1

Chrome はrgba値をに変更するため、ステートメントrgba(0, 255, 51, 0.329412)で一致が得られません。if

代わりにクラスを使用すると、はるかに簡単になります。

http://jsfiddle.net/zVYKS/

#div {
    width:100px; 
    height:100px; 
    border:2px solid black;
}
.on {
    background-color:rgba(0, 255, 51, 0.33);
}
.off {
    background-color:rgba(0, 153, 255, 0.33);
}

<div id="div" onclick="color()" class="on"></div>

<script>
function color(){
    var d = document.getElementById("div");
    if (d.classList.contains("on")) {
        d.classList.add("off");
        d.classList.remove("on");
    } else {
        d.classList.add("on");
        d.classList.remove("off");
    }
}
</script>
于 2013-09-16T02:21:14.670 に答える