zoukankan      html  css  js  c++  java
  • 在原有网页上弹出一个子窗口并且实现半透明背景,原网页的滚动效果失效

      今天在做一个类似花瓣的采集功能的页面时,要实现这样的页面效果:在原页面上弹出新的子窗口B,同时原页面A被一层透明的图层C覆盖,图层C在子窗口B下面而在页面A上面; 原页面A的滚动轴消失,页面禁止滚动,子窗口B的滚动不受印象。。

      在这里写下几点操作的操作点:

      1、 把子窗口B和图层C放在同一个div中,在一起追加到body标签中。

    参考html代码:

    <div id="inBody">
      <div class="B"></div>
      <div class="C"></div>
    </div>

    参考css:

    #idBody{
      display: none;         /*在加载到网页后才进行block操作*/
    }
    
    .B{
      z-index: 999;          /* 如果要保持总在页面最顶端,这个值尽量往大定义 */
      position: fixed;        /* 以下几个属性实现固定大小的子窗口居中 */
      top: 50%;            /* 先把子窗口的左上角放在页面中间,在用margin来调整 */
      left: 50%;
      width: 500px;
      height: 300px;
      margin-left: -250px;     /*  margin-left和top 始终是固定宽高的负一半  */
      margin-top: -150px;
      /* 其它css */
    }
    
    .C{
      z-index: 998;         /* 因为始终在子窗口B下方,所以只要比子窗口B小一点就可一了。 */
      background: rgba(255. 255. 255. 0.6); /* 实现图层透明 */
      position: fixed;        /* 以下实现图层覆盖整个浏览器页面 */
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
    }

      2、把原网页A的滚动功能屏蔽。

    参考js代码:

    $(' getInBox ').click(function(){       /* 点击弹出子窗口B */
    $('body').css('overflow-x', 'hidden');    /* 把原网页A的滚动轴的自动出现去掉 */
    $('body').css('overflow-y', 'hidden');
    $('.inBox').slow(100);
    })
    
    $(' delInBox').click(function(){       /* 关闭子窗口B */
    $('body').css('overflow', 'auto');      /* 恢复原网页A的滚动轴 */
    $('.inBox').hide(100);
    })

    题外话: js禁止鼠标的滚动效果:

    window.onmousewheel=function(){return false};  

     

  • 相关阅读:
    小知识点
    异常关机后idea的注入不能使用
    day42_mysql 数据库操作 数据库的约束
    day41_mysql安装与卸载 mysql配置 SQL语句 DDL:操作数据库,表 DML:增删改表中的记录 DQL:查询表中的记录 DCL:管理用户与授权
    day39_ECMAScript BOM DOM
    day38_JS
    day35_HTML inpot标签 form表单
    day33_Stream(JDK1.8后的接口,本身不是函数式接口)
    day32_ 优化文件上传及接收 函数式接口 自定义函数接口 函数式编程 常用函数式接口 Stream流
    day31_网络通信三要素 TCP Socket关键字 ServerSocket
  • 原文地址:https://www.cnblogs.com/zjfazc/p/2602174.html
Copyright © 2011-2022 走看看