'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 |
