【HTML5】ボタンにマウスオーバーした時に効果音を鳴らす

(最終更新 2014年8月6日) EC商売繁盛講座

マウスがボタンに重なったら音を出す

今までWEBページで音を出すのはマナー的にご法度でしたが、

申し込みボタンに音を付加することでクリック率が高くなるというデータもあり

WEBの技術屋の常識とお客様の認識は異なってきているのかもしれません

最近はHTML5で手軽に実装できるようにもなったので使ってみるのも手かもしれません。

但し、今までどおり音が鳴る旨の注意文はあったほうがいいのかなとも思います。。

charin

今回作るボタンはこんなぼたん(※音がなりますので注意)

マウスオーバーすると音が鳴るボタン

まず効果音を用意する

マウスオーバーしたら「チャリ~ン」となるようにするため効果音を用意します

今回私が使わせてもらったのはTAM music Factoryさん

http://www.tam-music.com/index.html

マウスオーバーの効果音ですから、大体1秒位のファイルがいいでしょう

TAM music Factoryさんからお好きなwavファイルをダウンロードさせてもらいます

音声ファイルを3種類に変換する

wavhenkan

なるべく多くのブラウザで音声を再生できるように音声ファイルを3種類に変換します

今回「WAV」ファイルが手に入ったので、あとは「MP3」「OGG」ファイルに変換しましょう

変換は以下のサイトがお手軽です

http://media.io/ja/

ページに音声ファイルを仕込む

まずはページに音声ファイルを仕込みます

変換した3種類のファイルをHTML5の「audio」タグで埋め込んで下さい

 
<audio id="overSound" preload="auto">
	<source src="sound.mp3" type="audio/mp3">
	<source src="sound.ogg" type="audio/ogg">
	<source src="sound.wav" type="audio/wav">
	<p>※お使いのブラウザはHTML5のaudio要素をサポートしていないので音は鳴りません。</p>
</audio>
 

Javascriptを書く

Jqueryを読み込んだ後に以下のように記述します。

HTML5のaudioは一旦playをすると終了するまで音が鳴らない仕様になっています

これではマウスオーバーを連続で行った場合に、現在再生されている音が終了するまで

次の音が鳴らなくなってしまいますので「currentTime」で開始時間をリセットしてやります。

 
$(function(){
 
	//音を鳴らす
	$('.appButton').mouseover(function(){
 
		document.getElementById("overSound").currentTime = 0;
		document.getElementById("overSound").play();
 
	});
 
 
});
 
 

最後にボタンを配置します

以下のとおりボタンを配置します

 
<img src="button.jpg" class="appButton">
 

これにてマウスオーバーすると音が鳴るボタンの完成です

マウスオーバーすると音が鳴るボタン

関連する記事

システム

WSLでTensorFlow with Keras をインストール

WSLにTensorFlowをインストール まずは必要なソフトウェアをインストールしていきます pyenv pyenvはpythonのバージョンを管理してくれたりするツールです、2系とか3系とかも簡単に切り替えられたりします。 以下のコマン…

EC商売繁盛講座

簡単出品王子の消費税増税・軽減税率対応

消費税増税・軽減税率に関してのお問い合わせ ・消費税に関するお問い合わせは国税庁 ・各モールへのデータの適用に関しましては各モールへお問い合わせをお願いいたします 消費税の軽減税率制度について(国税庁) https://www.nta.go…

EC商売繁盛講座

各モールの消費税増税・軽減税率対応

楽天市場 楽天市場はCSVに消費税率欄が追加されるパターン 楽天市場では「出荷日」が10/1を跨ぐ場合、消費税率は10%となります。ですので、予約商品などで9月中に購入をされたとしても、発送が10月を過ぎる場合は10%の消費税となり、のこり…