【问题标题】:Hide page elements by A-Frame's VR mode button通过 A-Frame 的 VR 模式按钮隐藏页面元素
【发布时间】:2016-10-23 04:17:02
【问题描述】:

我正在使用带有嵌入属性的 A-Frame。

请参考这个codepen:

http://codepen.io/ymcheung/full/zKyyqX/

<a-scene embedded>
    <a-sky src="https://raw.githubusercontent.com/aframevr/aframe/master/examples/boilerplate/panorama/puydesancy.jpg" rotation="0 -130 0"></a-sky>
</a-scene>

// .a-enter-vr-button is supplied by A-Frame
var sceneVRButton = document.querySelector('.a-enter-vr-button');

点击右下角的VR模式按钮,桌面进入全屏模式,移动端进入VR-Glass模式。

在移动模式下,工具栏仍然在屏幕上,我想暂时隐藏它。

function hideinHome() 
{
    document.querySelector('.floatingBar').style.opacity = 0;
}

sceneVRButton.addEventListener('click', hideinHome, false);

但是,似乎 A-Frame 的 DOM 加载时间比 javascript 晚。

在 Chrome 的控制台中有这样的消息:

Uncaught TypeError: Cannot read property 'addEventListener' of null

有什么方法可以“收听”A-Frame 的 DOM 或在移动设备中进入全屏模式?

谢谢!

【问题讨论】:

    标签: javascript aframe


    【解决方案1】:

    编写一个 A-Frame 组件,这样您就不必手动等待初始化。

    AFRAME.registerComponent('hide-on-enter-vr-click', {
      schema: {type: 'selector'},
    
      init: function () {
        var element = this.data;
        var button = this.el.querySelector('.a-enter-vr-button');
        button.addEventListener('click', function () {
          element.style.opacity = 0;
        });
      }
    });
    

    然后把它挂起来。

    <a-scene hide-on-enter-vr-click=".floatingBar"></a-scene>
    

    【讨论】:

    • 谢谢!!它非常简单直观。
    猜你喜欢
    • 2021-08-22
    • 2016-12-15
    • 2017-01-05
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    相关资源
    最近更新 更多