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

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.

主站蜘蛛池模板: 泗洪县| 清河县| 石门县| 和田市| 沙河市| 泽州县| 平顺县| 石嘴山市| 乌拉特中旗| 巴东县| 黔江区| 紫阳县| 长寿区| 密山市| 南和县| 贡觉县| 商水县| 固镇县| 黔西县| 泰兴市| 海原县| 汝州市| 富蕴县| 红桥区| 鹿泉市| 墨竹工卡县| 和平县| 左权县| 惠来县| 大名县| 沈丘县| 石渠县| 彰武县| 宜丰县| 称多县| 宁乡县| 雷州市| 剑河县| 靖州| 青田县| 寻乌县|