实现移动端透明遮罩层滑动,同时下方内容禁止滑动的方法

为什么80%的码农都做不了架构师?>>>   hot3.png

今天在做移动端小型活动页时遇到了这样的问题:

(小的尚不知应如何准确定义成遮罩层或弹窗层,下文可能会混用,但本文弹窗===遮罩)

一个遮罩层拥有较多的内容,需做成滑动效果;但在滑动遮罩内容时,下方主体内容同样可滑动。

因此需要实现弹窗层滑动,同时下方内容禁止滑动。

首先解决第一个:弹窗滑动的问题。

那么,先来看下弹窗部分:我们常用的弹窗基本是一个半透明的黑色,并且能够覆盖全屏。

他的代码应是这样的:

.mask{
      position:fixed;top:0;left:0;right:0;bottom:0;background: rgba(0,0,0,.5); 
     }

设置fixed能够在页面滑动时,遮罩层固定,从而能兼顾整个页面的覆盖。

而弹窗滑动只需再加属性:  

overflow: auto;

即可。

其次,下方主体内容的禁止滑动:

因为两者其一需要滑动,从而是不能禁止body 的默认事件的,即stroppropagation()是行不通的。

偶然想到:在弹出层显示后,对body加上position:fixed;属性,即可让body中的主体内容部分固定。

        因为遮罩层本身即有position:fixed,因此不产生影响(其滑动是由overflow: auto;实现)

为此,小人写了一小串事例代码如下,可供可能存在的看官撸之:




    
    
    
    
    
    
    
    


我是背景上的字
我是背景上的字
我是背景上的字
我是背景上的字
我是背景上的字
我是背景上的字
我是背景上的字
我是背景上的字

最后补充两点:

1.需要在移动端(真机)才能测试效果,浏览器的模拟效果不行。

2.很简单的内容,新手记录所用。

转载于:https://my.oschina.net/bghead/blog/841144

你可能感兴趣的:(实现移动端透明遮罩层滑动,同时下方内容禁止滑动的方法)