2 つの異なるテキスト フィールドにカラー コードを入力して、ユーザーが div のグラデーションを設定できるスクリプトを作成したいと考えています。
これは私のコードです:
<style>
#gradient {
background: #0A284B;
background: -webkit-gradient(linear, left top, left bottom, from(#0A284B), to(#135887));
background: -webkit-linear-gradient(#0A284B, #135887);
background: -moz-linear-gradient(top, #0A284B, #135887);
background: -ms-linear-gradient(#0A284B, #135887);
background: -o-linear-gradient(#0A284B, #135887);
background: linear-gradient(#0A284B, #135887);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0A284B', endColorstr='#135887');
zoom: 1; }
</style>
<script>
function myFunction()
{
color1 = document.getElementById("color1").value;
color2 = document.getElementById("color2").value;
document.getElementById("gradient").style.background="-webkit-gradient(linear, left top, left bottom, from("+color1+"), to("+color2+"))";
document.getElementById("gradient").style.background="-webkit-linear-gradient("+color1+", "+color2+")";
document.getElementById("gradient").style.background="-moz-linear-gradient(top, "+color1+", "+color2+")";
document.getElementById("gradient").style.background="-ms-linear-gradient("+color1+", "+color2+")";
document.getElementById("gradient").style.background="-o-linear-gradient("+color1+", "+color2+")";
document.getElementById("gradient").style.background="linear-gradient("+color1+", "+color2+")";
document.getElementById("gradient").style.filter="progid:DXImageTransform.Microsoft.Alpha(startColorstr='"+color1+"', endColorstr='"+color2+"')";
}
</script>
<input type="text" id="color1" onkeyup="myFunction()" value="#E9EDF6"></input>
<input type="text" id="color2" onkeyup="myFunction()" value="#AABBDD"></input>
<div id="gradient" style="height:500px">
I have gradient
</div>
この関数は Firefox と IE10 では正常に動作しますが、古いバージョンの IE では動作しません。最後のバックグラウンド呼び出しが、古い IE バージョン用の他の呼び出しを上書きするためだと思います。
それで、あなたはこれについてどうしますか?色変更関数を呼び出す前に、使用するブラウザを最初にチェックする関数を作成する必要がありますか?