テキストのスパンがあり、クリックすると背景色を変更して強調表示されます。誰かが実際にテキストをハイライトしているように、背景色が左から右に徐々に変化するように、ハイライトをアニメーション化したいと思います。CSS3やJavascript/jQueryでそれをどのように達成できるかについて何か考えはありますか?
質問する
946 次
2 に答える
7
CSS3 のみの機能に問題がない場合は、トランジション、グラデーション、および を使用できますbackground-size
。
.highlightable {
background-size: 0 100%;
background-repeat: no-repeat;
-webkit-transition: background-size 0.5s ease-out;
-moz-transition: background-size 0.5s ease-out;
-ms-transition: background-size 0.5s ease-out;
-o-transition: background-size 0.5s ease-out;
transition: background-size 0.5s ease-out;
}
.highlightable.highlight {
background-image: -webkit-linear-gradient(yellow, yellow);
background-image: -moz-linear-gradient(yellow, yellow);
background-image: -ms-linear-gradient(yellow, yellow);
background-image: -o-linear-gradient(yellow, yellow);
background-image: linear-gradient(yellow, yellow);
background-size: 100% 100%;
}
于 2012-04-20T23:08:21.123 に答える
0
多くの JavaScript ライブラリを使用すると、これを非常に簡単に行うことができます。たとえば、私のお気に入りはYUIです。
それ以外の場合は、ライブラリがなければ、各タイム スライスで背景に使用する 16 進数の中間色値を含む配列を設定します。メソッドを使用しsetTimeout()
て背景色を数回すばやく連続して変更します。例えば
setTimeout("document.getElementById('mySpan').style.backgroundColor = myColors[i]; i++;", 50);
于 2012-04-20T22:55:28.247 に答える