zoukankan      html  css  js  c++  java
  • 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%;
    }
    以上就可以实现模态框出现时背景不动。
  • 相关阅读:
    Python-time和datetime模块
    Python-hashlib模块
    Python-利用flask模块创建web接口
    Python-操作Excel
    2
    1
    8
    7
    HDFS元数据管理实战篇
    使用HttpFS网关从防火墙后面访问HDFS
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13308878.html
Copyright © 2011-2022 走看看