Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用A-Frame切换DOM的可见性_Javascript_Aframe - Fatal编程技术网

Javascript 使用A-Frame切换DOM的可见性

Javascript 使用A-Frame切换DOM的可见性,javascript,aframe,Javascript,Aframe,我想在切换A-Frame的VR模式时隐藏和显示一些HTML块: // Enter VR Mode and hide some DOMs // opaicty: 0 is applied by .lightOff AFRAME.registerComponent('entering-vr', { schema: { type: 'selector' }, init: function () { var enterBut

我想在切换A-Frame的VR模式时隐藏和显示一些HTML块:

// 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();
            }
        }
    }
});
它在桌面浏览器中运行得非常好。然而,它并不总是在移动设备中工作。“有时”它将.LightOff添加到.site标题和.featuredImage。单击.a-orientation-modal中的X按钮永远不会删除.LightOff

如何使切换在移动设备中始终有效?
谢谢

如Don所述,尝试使用
输入vr
/
退出vr
事件。

您是否与软件中存在此缺陷的开发人员接触?我认为a-frame社区鼓励用户在此处发布问题:p问题很好,虽然在其当前形式中,可能更多地与全屏API的不一致浏览器实现有关,而不是与A-Frame库有关。我认为您可以通过监听
元素上的
输入vr
退出vr
事件,而不是文档上的全屏事件来解决所有这些问题。这对你有用吗?