I have a simple vue component that will display a preloader when some images are loaded or changes. It's working fine, but I'm not able to disable the overflow of the document body when the component is displayed. Is there a way in Javascript to select the body and set the overflow to hidden? I'm not expert in vanilla javascript.
Asked
Active
Viewed 2,586 times
2
-
1To get the body just use `document.body` – VLAZ May 21 '20 at 13:59
1 Answers
6
You can use querySelector
to select any item in your DOM. Here is the mdn_link for details
If you want to select the body
then simply you can use document.body

Sifat Haque
- 5,357
- 1
- 16
- 23
-
Thanks for the answer. I will use it. I'm trying now using `document.getElementsByTagName('body').css.overflow = 'hidden';` but I'm not sure if this the best way. – guggio May 21 '20 at 14:06
-
@guggio `getElementsByTagName` returns a collection, not a single element. Also, you cannot use `.css` on a DOM element. – VLAZ May 21 '20 at 14:08
-
-
@guggio https://developer.mozilla.org/en-US/docs/Web/API/ElementCSSInlineStyle/style – VLAZ May 21 '20 at 14:14
-
1You can simple do this `document.getElementsByTagName("body")[0].style.overflow = "hidden";` or `document.body.style.overflow = 'hidden'` – Sifat Haque May 21 '20 at 14:15
-
@SifatHaque normally your suggestion works fine, but I have a `Cannot set property 'overflow' of undefined` error in concole when the vue component is mounted :( !! – guggio May 21 '20 at 14:27
-
You can use `onload` to check if body is loaded or not and then do your stuff. You can study this link https://stackoverflow.com/questions/588040/window-onload-vs-document-onload – Sifat Haque May 21 '20 at 14:30