実現したいこと
白いボタンにhoverすると、黒い背景が左側から差し込まれる形で現れ、hoverを外すと黒い背景が右側へと消えていってデフォルトのボタンの見た目に戻る。
前提
cssのアニメーションを使って、白いボタンにhoverすると、黒い背景が左側から差し込まれる形で現れ、hoverを外すと黒い背景が右側へと消えていってデフォルトのボタンの見た目に戻る、というのを実現したいと思っています。
発生している問題・エラーメッセージ
書いたコードだと、hoverを外した瞬間に黒い背景(疑似要素)が、もともと居た左の方へ戻ってしまします。ここを、右に移動して切れていってほしいと思うのですが、方法が思いつきません。
該当のソースコード
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="style.css"> <title>Document</title> </head> <body> <button class="btn">ボタン</button> </body> </html>CSS
.btn {
width: 200px;
height: 100px;
border: 1px solid #000;
background-color: white;
color: #000;
font-size: 2rem;
cursor: pointer;
position: relative;
overflow: hidden;
z-index: 1;
transition: color 0.3s ease;
}
.btn::before {
content: "";
display: inline-block;
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background-color: black;
transition: all 0.3s ease;
z-index: -1;
}
.btn:hover {
color: white;
}
.btn:hover::before {
transform: translateX(100%);
試したこと
補足情報(FW/ツールのバージョンなど)
すみません、HTMLのコードがなぜか改行されないです。見づらくて申し訳ありません。

回答2件
あなたの回答
tips
プレビュー