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};  

     

  • 相关阅读:
    hdu 3367 Pseudoforest
    hdu 2489 Minimal Ratio Tree
    hdu 4009 Transfer water
    poj 3164 Command Network
    hdu 3926 Hand in Hand
    hdu 3938 Portal
    5-26日(面经总结)
    5-25日
    5-21日|5-22日
    5-13日记录|5-14日
  • 原文地址:https://www.cnblogs.com/zjfazc/p/2602174.html
Copyright © 2011-2022 走看看