家・車以外で、人生で一番奮発した買い物

webサイトののリンクボタンにgifアニメを使うことは可能でしょうか。

ボタンA

(ホバー時)ボタンB

(クリック)gifアニメ再生

(再生が終わってから)リンク先へ遷移

という動きにしたいのですが、webデザインの勉強を始めたばかりで、やり方が分かりません。
htmlとcssの記述の仕方を教えていただけるとありがたいです。

A 回答 (1件)

htmlとcssだけではできなかったので、


javascriptでページの移動を遅らせて、
その間にgifを表示するということを
してみました。

sample.gifというgifアニメと、
anotherpage.htmlというリンク先ファイルを、
以下のhtmlファイルと同じフォルダに入れてから
実行してみてください。

<!DOCTYPE html>
<html lang="ja">
<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">
<title>gif-anime</title>
<style>
.gif{
margin:10% auto;
width:300px;
height:300px;
}
.btn {
background-color: #45d;
color: #fff;
}
.btn>.b {
display: none;
}
.btn:enabled:hover {
background-color: #d45;
}
.btn:enabled:hover>.a {
display: none;
}
.btn:enabled:hover>.b {
display: inline;
}
.btn:disabled {
background-color: #333;
color:#aaa;
}
</style>
</head>
<body>
<button id="btn" class="btn" disabled>ボタン<span class="a">A</span><span class="b">B</span></button>
<img src="sample.gif" id="gif" class="gif" style="display:none;"/>
<script>
const delayTime = 3000, // 待ち時間(ミリ秒)
linkURL = 'anotherpage.html'; // リンク先URL

const btn = document.getElementById('btn'),
gif = document.getElementById('gif');

gif.addEventListener('load', () => { // 画像が読み込まれたら
btn.disabled = false; // ボタンを押せるようにする
btn.addEventListener('click', () => { // クリックされたら
gif.style.display = 'block'; // gifを表示する
window.setTimeout(()=>{ // 待ち時間分遅らせる
location.href = linkURL; // リンク先へ飛ぶ
},delayTime);
}, false);
}, false);
</script>
</body>
</html>
    • good
    • 0
この回答へのお礼

助かりました

こんなに詳しく、ありがとうございます!
やはりjavascriptが出来ないと、表現できることに限りがありますね…。
早速、実装してみようと思います。
本当にありがとうございました!

お礼日時:2021/09/08 09:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報