マウスが上にあるかどうかに応じて、背景色の不透明度を変更したい DIV があります。
なども使えると思いますがbackground: rgba(54, 25, 25, .5)
、色は別途設定したいです。色ではなく不透明度を変更する方法はありますか。
などもできますがopacity: 0.3
、それは DIV 全体に影響し、背景色に影響を与えたいだけです。
マウスが上にあるかどうかに応じて、背景色の不透明度を変更したい DIV があります。
なども使えると思いますがbackground: rgba(54, 25, 25, .5)
、色は別途設定したいです。色ではなく不透明度を変更する方法はありますか。
などもできますがopacity: 0.3
、それは DIV 全体に影響し、背景色に影響を与えたいだけです。
別の背景部分を作成し、div
その不透明度を設定div
できます。
<div id="container">
<div id="background"></div>
<div id="content">
<p>Lorum ipsum...</p>
</div>
</div>
と
#container { overflow:hidden; position:relative; }
#background {
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:#FF0000;
}
#background:hover { opacity:0.3; }
#content { position:relative; z-index:10; }
html/cssにはそのオプションが組み込まれていませんが、javascriptで色にアクセス/設定しているため、それを処理できる独自の関数を追加することもできます。
以下に例を示します。
<script type="text/javascript">
function RGBA(red,green,blue,alpha) {
this.red = red;
this.green = green;
this.blue = blue;
this.alpha = alpha;
this.getCSS = function() {
return "rgba("+this.red+","+this.green+","+this.blue+","+this.alpha+")";
}
}
// store a copy of the color
var bgColor = new RGBA(255,0,0,0.5);
function setBgOpacity(elem, opac) {
bgColor.alpha = opac;
elem.style.backgroundColor = bgColor.getCSS();
}
</script>
次に、HTML でonmouseover
イベントを使用して bgColor の不透明度を変更します。
<div onmouseover="setBgOpacity(this, '0.3');"
onmousout="setBgOpacity(this, '0.5');">Put your mouse over me</div>
RGBa と Opacity の Alpha 値に違いがあります。不透明度はすべての子要素に影響しますが、アルファには影響しません。
現在の色の値を読み取ってから、新しいアルファ値で RGBa として言い換える必要があります。これを行うには、現在の 16 進カラー値を 10 進トリプレットに変換する必要がある場合があります。
背景色の不透明度を変更するために RGBA に依存している場合、色自体とは別に不透明度を設定する方法はありません。通常の状態とホバー状態の両方に対して明示的な RGBA 値を宣言する必要があります。
いいえ、rgba のアルファのみを編集することはできません。したがって、のRGB
部分を使用する必要がありRGBa
ます。