猫クリックで音楽再生
一時停止、停止、音量の増減
ギターを弾く猫のソース
使う画像
トップ →

解説
1:html5の宣言

<!DOCTYPE html>
<html lang="ja">
ドキュメントをhtml5で書いたことを宣言
日本語で書いている事を宣言

2:アンプの状態
relativeの解説
一時停止、停止時の画像Aanpu1.gifにidをつけ、id="anpu1"visible(表示)
<div id="anpu1" style="position:relative;top:80px; left:38px;visibility:visible;">
<img src="Aanpu1.gif" widht="89" height="87" border="0">

再生時画像Aanpu1.gifにidをつけ、id="anpu"hidden(非表示)
<div id="anpu" style="position:absolute;top:0px; left:0px;visibility:hidden;">
<img src="Aanpu.gif" widht="89" height="87" border="0">

3:アンプにボタンを配置


onMouseOutonMouseOver
一時停止Apause.gifApause1.gif
停止Astop.gifAstop1.gif
ボリューム減Adown.gifAdown1.gif
ボリューム増Aup.gifAup1.gif

<div style="position:absolute;top:75px; left:3px;visibility:visible;">
<a onClick="pauseAudio()">  ←   一時停止のスクリプト部分に飛ぶ 
<img src="Apause.gif" width="15" height="13" onMouseOver="this.src='Apause1.gif'"
onMouseOut="this.src='Apause.gif'">
</a></div>
テストマウスオーバーで、画像変更
<img src="画像1"onMouseOver="this.src='画像2'onMouseOut="this.src='画像1'
最初の画像変更する画像最初に戻す画像
停止、ボリュームの増減ボタンも同様に設定

4:再生

最初の猫画像をid=tan0に、設定し、クリックで再生
<div id="tan0" style="position:relative;top:0px; left:0px;visibility:visible;">
<a onClick="playAudio()">  ←   再生のスクリプト部分に飛ぶ 
<img src="Ag34.gif" widht="210" height="240" border="0" onMouseOver="this.src='Ag2.gif'"
onMouseOut="this.src='Ag34.gif'" >
</a>

再生中の画像Agita12.gifをid=tan2にし、非表示にしておく
<div id="tan2" style="position:absolute;top:0;left:0;visibility:hidden;">
<img src="Agita12.gif" widht="210" height="240" border="0"></div>

一時停止の画像Ag2.gifをid=tan1にし、非表示にしておく
<divid="tan1" style="position:absolute;top:0px; left:0px;visibility:hidden;">
<a onClick="playAudio()">
<img src="Ag2.gif" widht="210" height="240" border="0"></a></div>

停止の画像Ag12-1.gifをid=tan3にし、非表示にしておく
<divid="tan3" style="position:absolute;top:0px; left:0px;visibility:hidden;">
<a onClick="stopAudio()">
<img src="Ag12-1.gif" widht="210" height="240" border="0"></a></div>

5:audio

音楽再生のhtml5のタグ
<audio id="audio"> <source src="Aanohinikaeritai.mp3"> </audio>
idをaudioにし、操作mp3形式の曲名



6:スクリプト部分
グローバル変数の設定
var a= document.getElementById("audio"); audioで設定した id="audio"を変数 aに
var audi=0;変数audi=0を再生してない状態にする
var len=0;音源再生の経過時間を変数 len に

//再生
function playAudio() {<a onClick="playAudio()">猫画像
audi=1;再生中は、変数audiを1
再生中、表示、非表示にする画像
document.getElementById("anpu1").style.visibility="hidden";
document.getElementById("anpu").style.visibility="visible";
document.getElementById("tan0").style.visibility="hidden";
document.getElementById("tan1").style.visibility="hidden";
document.getElementById("tan2").style.visibility="visible";

↓ 音源再生
a.play();document.getElementById("audio");を.play
//現在の再生位置(秒)
a.addEventListener("timeupdate", function(){
len=a.currentTime;
aに再生位置(timeupdata)を.addEventListenerで登録し、現在位置(currentTime)を変数 len に
//再生完了
if (91.5<len){
stopAudio() ← 停止のスクリプト部分へ 
}, false);
}
再生時間を返すメソッド a.durationで計測するか、時計で計り、無音部分を調整し、91.5秒を設定 (音源の長さは、秒で設定)
再生時間(len)が91.5秒を超えたら、stopAudio()に
↓ 音源停止
//停止 //
function stopAudio() { 再生完了か<a onClick="stopAudio()"> をクリック
if(audi==1){audi==1(再生中) なら実行
停止時、表示、非表示にする画像
document.getElementById("anpu1").style.visibility="visible";
document.getElementById("anpu").style.visibility="hidden";
document.getElementById("tan2").style.visibility="hidden";
document.getElementById("tan3").style.visibility="visible";

//ended属性で終了判定
if(!audio.ended){再生が完了してなかったら
a.pause();一時停止し
a.currentTime = 0;再生位置(currentTime)を 0 に
audi=0;停止中は、変数audiを0
var timeout_id = setTimeout(ret , 1500); id=tan3の画像を1.5秒表示しret()に移動
1.5秒後の画像
function ret(){
document.getElementById("tan3").style.visibility="hidden";
document.getElementById("tan0").style.visibility="visible";
最初の画像に戻す

//一時停止
function pauseAudio() {
if(audi==1){
<a onClick="pauseAudio()"> をクリック
audi==1(再生中) なら実行
一時停止中、表示、非表示にする画像
document.getElementById("anpu1").style.visibility="hidden";
document.getElementById("anpu").style.visibility="visible";
document.getElementById("tan2").style.visibility="hidden";
document.getElementById("tan1").style.visibility="visible";

a.pause();メソッド.pause()で再生された位置で、一時停止

//音量を上げる
function upVolume() {
a.volume = a.volume + 0.25;
<a onClick="upVolume()">  をクリックを
0.25づつ上げる

//音量を下げる
function downVolume() {
a.volume = a.volume + 0.25;
<a onClick="downVolume()">  をクリックを
0.25づつ下げる