リンクをクリックすると、数ピクセル下に移動するリンクを作成しています。これをアニメーションにしたいので、cssトランジションを追加しました。今私が抱えている問題は、ボタンを押してもアニメーションが完了しないことです。マウスボタンを押している間だけアニメーションします。
だから私が欲しいのは、リンクがアニメーションを完了し、その後通常の位置に戻ることです。(これは、通常に戻らないため、:visited を使用できないことを意味します)。
これは、私の問題を明確にするために作成したフィドルです。
これは私が使用しているコードです:
CSS
.button
{
font-size: 132px;
font-family: helvetica, sans;
font-weight: bold;
text-shadow: 0px 7px 0px #3b6e62;
color: #f2b191;
text-align:center;
padding-top: 46px;
padding-top:0px;
-webkit-transition: all 0.4s ease-in-out; -moz-transition: all 0.4s ease-in-out; -ms-transition: all 0.4s ease-in-out; -o-transition: all 0.4s ease-in-out; transition: all 0.4s ease-in-out;
}
.button:hover {padding-top:3px; text-shadow: 0px 4px 0px #3b6e62;}
.button:active {padding-top:7px; text-shadow: 0px 0px 0px #3b6e62;}
html
<div class="button">This is a button</div>
私は jquery で問題を解決することにオープンですが、私は専門家ではありません。
jQueryを使用して方法を見つけました。ただし、それが正しい方法かどうかはわかりません。アニメーションは、css 疑似クラスのように流動的ではありません。
これに何か追加する人はいますか?
$('.button').hover(function(){
$(this).css({'top': '3px', 'text-shadow': '0px 4px 0px #3b6e62'});
});
$('.button').click(function(){
$(this).css({'top': '7px', 'text-shadow': '0px 0px 0px #3b6e62'});
});
$('.button').mouseout(function(){
$(this).css({'top': '0px', 'text-shadow': '0px 7px 0px #3b6e62'});
});