CSSトランジションに若干の問題があります。私のウェブサイトにはdivがあり、divにはh1があります。CSSトランジションホバー(div内のh1が正常に動作しないようです)
ここにCSSコードがあります。
#inner1 {
background-image: url("rsz_astromenu1.jpg");
height: 333px;
width: 500px;
display: inline-block;
opacity: 0.5;
font-size: 10px;
}
#inner1:hover {
font-size: 50px;
transition: font-size 1s linear;
opacity: 1;
transition: opacity 1s linear;
}
不透明度(0.5〜1)とフォントサイズ(10px〜50px)をアニメーション化したいと考えています。 しかし、私のマウスをそのdivに乗せると、不透明度はきれいに変わってしまいますが、テキストはただちにサイズを変えます。ホバーが機能してフォントサイズを変更するように見えるので、なぜトランジションが省略されますか?
私はそれを#inner1 h1:hoverにすると、テキストが上に移動したときだけ、適切に動作します。そして、そのdivにカーソルを合わせると、フォントサイズの遷移が必要になります。
問題を回避し、テキストを拡大するためのJSスクリプトを作成しようとしました。
ここで私が思いついたのです。私はすべてのHTMLコンテンツを貼り付けますが、それほど多くはありません。
しかし、これは本当にスムーズではありませんが、私は毎ミリ秒ごとに0.09pxだけインクリメントするようになりましたが、まだまだ不透明に見えるし、何百もの不要なコマンドをブラウザに送信します。
どうすれば問題を解決できますか? CSSかJSのどちらか? ありがとうございます。代わり
transition: font-size 1s linear;
transition: opacity 1s linear;
使用all
transition: all 1s linear;
を使用して、またはマージの
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Gallery</title>
<link rel="stylesheet" type="text/css" href="mainStyle.css">
</head>
<body>
<div id="outer">
<div id="middle">
<div id="inner1" class="hover-menu">
<h1 id="astro-h1" class="hover-menu">Astrofotografia</h1>
</div>
<div id="inner2"></div>
</div>
</div>
<script>
var JSinner1 = document.getElementById("inner1");
var JSastroh1 = document.getElementById("astro-h1")
JSastroh1.style.fontSize = "16px";
var textBigger = function() {
var newSize = parseFloat(JSastroh1.style.fontSize) + 0.009 + "px";
window.setInterval(textBigger, 1)
if (parseFloat(newSize) < 60) {
JSastroh1.style.fontSize = newSize;
console.log(newSize);
}
}
JSinner1.addEventListener("mouseover", textBigger)
</script>
</body>
</html>
ああ。じぶんの。神。私はこれを考え出し、なぜそれがうまくいかないのか疑問に思って時間を過ごしました。答えはとてもシンプルでした。どうもありがとう ;)。 – Mashchax
このような問題に直面したときは、Chrome Dev ToolsまたはFirebugを使用して、スタイルが別のセレクタによって上書きされているかどうかを確認できます –