2016-12-30 14 views
0

Iは、フレームのVRモードを切り替えながら、いくつかのHTMLブロックを隠し、表示したいと思い:トグル・フレームとDOMの可視性

// Enter VR Mode and hide some DOMs 
// opaicty: 0 is applied by .lightOff 
AFRAME.registerComponent('entering-vr', 
{ 
    schema: 
    { 
     type: 'selector' 
    }, 

    init: function() 
    { 
     var enterButton = document.querySelector('.a-enter-vr-button'); 

     enterButton.addEventListener('click', function() 
     { 
      document.querySelector('.site-header').classList.add('lightOff'); 
      document.querySelector('.featuredImage').classList.add('lightOff'); 
     }) 
    } 
}); 


// Exit VR Mode and restore visibility 
AFRAME.registerComponent('exting-vr', 
{ 
    schema: 
    { 
     type: 'selector' 
    }, 

    init: function() 
    { 
     function removeLightOff() 
     { 
      document.querySelector('.site-header').classList.remove('lightOff'); 
      document.querySelector('.featuredImage').classList.remove('lightOff'); 
     } 

     // On Clicking [X] Button in Mobile 
     var exitButton = document.querySelector('.a-orientation-modal button'); 
     exitButton.addEventListener('click', removeLightOff()); 
     // On Exiting Fullscreen in Desktop 
     if (document.addEventListener) 
     { 
      document.addEventListener('webkitfullscreenchange', exitHandler, false); 
      document.addEventListener('mozfullscreenchange', exitHandler, false); 
      document.addEventListener('fullscreenchange', exitHandler, false); 
      document.addEventListener('MSFullscreenChange', exitHandler, false); 
     } 
     function exitHandler() 
     { 
      if (document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement !== null) 
      { 
       removeLightOff(); 
      } 
     } 
    } 
}); 

それはデスクトップブラウザでかなりよく働きました。ただし、モバイルデバイスでは必ずしも機能しませんでした。 「時々」.site-headerと.featuredImageに.LightOffを追加しました。 .a-orientation-modalのXボタンをクリックすると、.LightOffは決して削除されません。

トグルを常にモバイルデバイスで使用できるようにするにはどうすればよいですか? ありがとう!

+0

あなたはソフトウェアのこのバグで開発者にアプローチしましたか? – zerohero

+0

私はa-frameコミュニティがユーザーに質問を投稿するよう促しています:p – ymcheung

+0

質問は良いことですが、現在の形では、A-Frameライブラリよりも全画面APIのブラウザの実装が一貫していないことが考えられます。私はあなたが文書のフルスクリーンイベントではなく、 ''エレメントの 'enter-vr'イベントと' exit-vr'イベントを聞いて、そのすべてを回避できると思います。これはあなたのために働きますか? –

答えて

0

ドンが言及したように、enter-vr/exit-vrイベントを使用してみてください。