'How can I hide an element with A-Frame?

What is the best way to hide an element using A-Frame?

Do I need to remove the element from the DOM?



Solution 1:[1]

var el = document.querySelector("#yourElementId");

el.setAttribute("visible",false);

Solution 2:[2]

The easiest way to hide an element is the visible attribute:

myElement.setAttribute("visible", false)

Solution 3:[3]

You can also specify it on the a-frame tag itself e.g.:

<a-image id="hand-overview-chart"
  src="#handOverviewImg" position="3 3 0"
  width="4" height="4" visible="false">
</a-image>

Of course you'll still need javascript to trap on some event like "mouseenter" to toggle it visible:

document.querySelector('#myElParentId').addEventListener('mouseenter',myEventHandler); 

myEventHandler: function (evt) {
  let myEl = document.querySelector("#hand-overview-chart");
  myEl.setAttribute("visible","true");
}

Solution 4:[4]

The problem with visible="false" is that the element behind it will not be clickable (because the element is there, but is transparent). So, the alternative I found is to make it with zero width. Here is how I hide the element on mouse click:

document.getElementById("my_element_id").addEventListener('mousedown', function(evt) {
  document.getElementById("my_element_id").setAttribute("width", "0");
});

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 ffmaer
Solution 2 boxtrain
Solution 3 vt5491
Solution 4 Rodrigo De Almeida Siqueira