官术网_书友最值得收藏!

Preventing body scroll

We have a problem, though. Our modal panel, despite being full screen, is still a child of thebodytag. This means we can stillscrollthe main window! We don't want users to interact with the main window in any way while the modal is open, so we must disable scrolling on thebody.

The trick is to add the CSSoverflowproperty to thebodytag and set it tohidden. This has the effect of clipping any overflow (that is, part of the page not currently in view), and the rest of the content will be made invisible.

We'll need to dynamically add and remove this CSS rule, as we obviously want to be able to scroll through the page when the modal is closed. So, let's create a class calledmodal-openthatwe can apply to thebodytag when the modal is open.

style.css:

body.modal-open {
  overflow: hidden;
position: fixed;
}

We can usev-bind:classto add/remove this class, right? Unfortunately, no. Remember that Vue only has dominion over the element where it is mounted:

<body>
  <p id="app"> 
    <!--This is where Vue has dominion and can modify the page freely-->
  </p>
  <!--Vue is unable to change this part of the page or any ancestors-->
</body>

If we add a directive to thebodytag, it willnotbe seen by Vue.

主站蜘蛛池模板: 朝阳县| 固安县| 孝感市| 青州市| 彭泽县| 鲜城| 乌鲁木齐市| 霸州市| 嵩明县| 苍南县| 怀仁县| 电白县| 沁源县| 曲水县| 汨罗市| 吉木萨尔县| 衡阳县| 正定县| 桂阳县| 出国| 长海县| 曲靖市| 紫阳县| 丽水市| 黄冈市| 墨脱县| 沙洋县| 濮阳市| 绥阳县| 馆陶县| 洪洞县| 扎赉特旗| 松滋市| 始兴县| 上思县| 大邑县| 资兴市| 隆昌县| 宁明县| 昆山市| 成安县|