このサンプルはスマホで確認できます。
iOSの場合は、一度加速度センサーの許可をするボタンがでるので、クリックしてください。
スマホを振ると、加速度を検知して、以下の円のアニメーションの発動と、音の再生が開始されます。
ふりふりしてください
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.1.2/howler.min.js"></script> <div id="demo_info"></div> <div id="demo_data"><span></span></div> <div class="demo_icon">ふりふりしてください</div>
JS
eff = new Howl({ src: ["/sound/demo/click/003.mp3"], autoplay: false, loop: false, volume: 0.8 }); function ClickRequestDeviceSensor(){ //デバイスのイベントへのリクエスト許可確認 DeviceOrientationEvent.requestPermission().then( function( response ){ if( response === 'granted' ){ //許可されたらイベントを実行する window.addEventListener("devicemotion", devicemotionHandler); //許可ボタンを消す $('#sensorrequest').css( 'display', 'none' ); } }).catch( function( e ){ console.log( e ); }); } //$(function(){ window.onload = () => { if( window.DeviceOrientationEvent ){ if( DeviceOrientationEvent.requestPermission && typeof DeviceOrientationEvent.requestPermission === 'function' ){ var banner = '<div onclick="ClickRequestDeviceSensor();" class="btn" id="sensorrequest">加速度センサーの有効化</div>'; $('#demo_info').append( banner ); }else{ window.addEventListener("devicemotion", devicemotionHandler); } } }; function devicemotionHandler(event) { // X軸 var x = event.acceleration.x; // Y軸 var y = event.acceleration.y; // Z軸 var z = event.acceleration.z; var l = 7; if (x > l) { $('#demo_data span').html('<b>右</b>に振りました!'); sf(); } else if (x < -l) { $('#demo_data span').html('<b>左</b>に振りました!'); sf(); } else if (y > l) { $('#demo_data span').html('<b>上</b>に振りました!'); sf(); } else if (y < -l) { $('#demo_data span').html('<b>下</b>に振りました!'); sf(); } else return; } function sf(){ eff = new Howl({ src: ["/sound/demo/click/003.mp3"], autoplay: false, loop: false, volume: 0.8 }); eff.play(); $(".demo_icon").removeClass("poyon").addClass("poyon"); $(".demo_icon").one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ $(".demo_icon").removeClass('poyon'); }); $(".demo_icon").addClass('poyon'); }