3 つの選択肢:
最初のもの - CSS3
すべてのブラウザをサポートする必要がない場合は、この方法を使用してください。これは純粋な CSS であるため、利点があります。概要は次のとおりです (複数のブラウザー用の複数のバージョンのルールが含まれます)。
.youranchorsclass:active ~ #yourdivsid { /*when the anchor is active (clicked)*/
-moz-animation: myanimation 1s;
-webkit-animation: myanimation 1s;
-o-animation: myanimation 1s;
animation: myanimation 1s;
}
@-moz-keyframes myanimation, @-webkit-keyframes myanimation, @-o-keyframes myanimation, @keyframes myanimation {
from { background: red; }
to { background: white; /*or whatever it was originally*/ }
}
(プレフィックス付きの醜いルールをすべて取り除きたい場合は、PrefixFreeを参照してください)。
2 つ目 - jQuery
古いブラウザのサポートが気になる場合は、これを使用してください。まず、これを に挿入して、ページに jQuery を含めますhead
。
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type = "text/javascript"></script>
それで:
$(".yourlink").click(function() {
$("#yourdivid").css("background", "red").delay(1000).css("background", "white");
};
この jQuery メソッドは色を徐々に変更しないことに注意してください。そうするには、プラグイン ( jQuery UIなど) を含める必要があります。
3 つ目 - 純粋な JavaScript
このような小さな効果のためだけに比較的巨大なライブラリを含めたくない場合は、これを使用してください。それは非常に簡単です。開始するためのコメント付きの概要を次に示します。
function changeDivColor(color) {
document.getElementById("yourdivid").style.backgroundColor = color;
}
document.getElementById("youranchor").onClick = function() { //when the anchor is clicked
changeDivColor("red"); //chang the div color to red
setTimeout(function() { //wait 1000 milliseconds (1s) -- see below
changeDivColor("white"); //then change it back to white
}, 1000);
};
それが何らかの形で役立つことを願っています!