マウスオーバーでフォントサイズを大きくするにはどうすればよいですか?色の遷移は時間の経過とともに正常に機能しますが、何らかの理由でフォントサイズがすぐに切り替わります。
サンプルコード:
body p {
font-size: 12px;
color: #0F9;
transition:font-size 12s;
-moz-transition:font-size 12s; /* Firefox 4 */
-webkit-transition:font-size 12s; /* Safari and Chrome */
-o-transition:font-size 12s;
transition:color 12s;
-moz-transition:color 12s; /* Firefox 4 */
-webkit-transition:color 12s; /* Safari and Chrome */
-o-transition:color 12s;
}
p:hover {
font-size: 40px;
color:#FC0;
}
色は時間の経過とともに正常に遷移しますが、何らかの理由でフォントがすぐに切り替わります。
font-size
トランジションは、color
トランジションによって上書きされています。
transition: font-size 12s; /* transition is set to 'font-size 12s' */
transition: color 12s; /* transition is set to 'color 12s' !! */
代わりに、すべてを1つの宣言に結合する必要があります。
transition: color 12s, font-size 12s;
参照:http://jsfiddle.net/thirtydot/6HCRs/
-webkit-transition: color 12s, font-size 12s;
-moz-transition: color 12s, font-size 12s;
-o-transition: color 12s, font-size 12s;
transition: color 12s, font-size 12s;
(または、単にall
キーワードを使用します:transition: all 12s;
- http://jsfiddle.net/thirtydot/6HCRs/1/ )。
すべてのプロパティの遷移を設定してみてください。
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
同様に機能します。
またはフォントのみ:transition: font 0.3s ease
。
font-size
のトランジションはピクセルごとにステップするように見えるため、スムーズではありません。
1行だけの場合は、transform: scale(.8)
を使用できる場合があります。品質を落とさないように、スケールアップとスケールダウンはしません。また、テキストの配置に応じて、transform-Origin: 0 0
または異なる値を使用する必要があります。
別の方法として、 jQuery Transit などのフレームワークを使用して、これを簡単に行うこともできます。
Javascript:
$("p").hover( function () {
//On hover in
$("p").transition({ 'color': '#FC0', 'font-size': '40px' }, 1000);
}, function () {
//On hover out
$("p").transition({ 'color': '#0F9', 'font-size': '12px' }, 1000);
});
CSS:
p
{
font-size: 12px;
color: #0F9;
}