• vue--模态框背景不动解决方案


    1、如果弹框内容不需要滚动 直接在灰色背景元素上绑定@touchmove.prevent 事件即可

    2、内容需要滚动的情况下实现原理:

      给一个固定定位的样式类,当模态框出现时,动态添加样式类给body 标签,并且获取当前页面滚动高度赋值给

    this.mockScrollTop 设置body固定定位的高度。当模态框关闭时body标签动态移出类名,并把存在data里的 this.mockScrollTop 值赋值给当前滚动高度
    第一步定义需要用到的变量,并且赋予默认值
    data(){
      return{
         mockScrollTop: null, // 距离顶端的值
         className:'modalOpen',  
         hideShow: false, // 模态框默认不显示  
      }  
    }
    
    第二步methods定义模态框点击事件
    
     // 模态框背景禁止滑动
            hideBox() {
                this.hideShow = !this.hideShow;
                if (this.hideShow) {
                    this.mockScrollTop = document.scrollingElement.scrollTop;
                    document.body.classList.add(this.className);
                    document.body.style.top = `-${this.mockScrollTop}px`;
                } else {
                    document.body.classList.remove(this.className);
                    document.scrollingElement.scrollTop = this.mockScrollTop;
                }
            },
    第三步methods定义模态框出现css 样式
    /*弹层*/
    body.modalOpen {
        -webkit-overflow-scrolling:touch;
        position: fixed;
         100%;
    }
    以上就可以实现模态框出现时背景不动。
  • 相关阅读:
    HDU 5492 Find a path
    codeforce gym 100548H The Problem to Make You Happy
    Topcoder SRM 144 Lottery
    codeforce 165E Compatible Numbers
    codeforce gym 100307H Hack Protection
    区间DP总结
    UESTC 1321 柱爷的恋爱 (区间DP)
    HDU 4283 You Are the One (区间DP)
    HDU 2476 String painter (区间DP)
    UESTC 426 Food Delivery (区间DP)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13308878.html
Copyright © 2020-2023  润新知