問題5:jqueryでボタンを作ろう3
cssだけでは通常hoverのマウスイン、マウスアウトでは同じアニメーションしか実装できませんが、jqueryではデモのようにhoverのマウスインとマウスアウトで違うアニメーションを適用できます。
あらかじめエディタに書くコード
<div class="btn">ここにクリック</div>
¥HTML¥
.btn{
position: relative;
width: 200px;
height: 50px;
line-height: 50px;
text-align: center;
border: 2px solid #333;
cursor: pointer;
}
.btn::before{
content: '';
position: absolute;
top: 0;
height: inherit;
width:0px;
background-color: #333;
z-index: -1;
transition: .5s;
}
¥CSS¥
期待する画面
解答ソースコード
.btn:hover{
color: #fff;
}
.mouseenter::before{
left: 0;
width: 200px;
background-color: #333;
}
.mouseleave::before{
right: 0;
width: 0px;
background-color: #333;
}
¥CSS¥
$(function () {
$(".btn").hover(function(){
$(this).removeClass("mouseleave").addClass("mouseenter");
},function(){
$(this).removeClass("mouseenter").addClass("mouseleave");
});
});
¥JavaScript¥
解説
まずjqueryのhoverの説明ですが、hover(マウスが入った時の処理、マウスが出ていった時の処理)となっています。なので今回は前者でmouseleaveを除き、mouseenterを与えて、後者でmouseenterを除いて、mouseleaveを与えています。そして最後にcssの説明ですが、mouseenterではwidthを200pxに、leftを0にすることによって左から背景が伸びていくように、mouseleaveではwidthを0pxに、rightを0にすることで右に向かって縮んでいくように表示できます。
ログインして解答を見る
完了にする!
活動記録をTweetする