css禁止滑动页面_弹出层完美禁止页面滚动

2023-11-11

Html

Css

Js

弹出层去除背景滚动--原生版

使用js构建的弹出层类,使用new的方式实例化,传入的参数为:

{

el: "触发元素,click触发弹出层",

content: "弹出层内容",

time: 0 // 显示持续时间

}

使用 passive 事件和overflow:hidden;禁止滚动。完美兼容PC和移动端。

main content

Popup

Popup 500

body {

margin:0;

}

h2,p {

padding:0 10px;

}

.main {

height:1000px;

background:#f63;

background:-webkit-linear-gradient(top,#f8f8f8,#f63);

padding:10px;

}

.btn-popup {

padding:0 10px;

height:40px;

line-height:40px;

background:#f63;

font-weight:600;

border:none;

outline:none;

color:#333;

border-radius:4px;

cursor:pointer;

font-size:16px;

-webkit-tap-highlight-color:transparent;

}

code {

background:#ddd;

padding:2px 5px;

border-radius:2px;

color:#333;

white-space:pre-wrap;

display:inline-block;

margin:0 10px;

}

/****************** css for layer /*******************/

.layer {

position:fixed;

overflow:auto;

top:0;

left:0;

right:0;

bottom:0;

background:#666;

background:rgba(0,0,0,0.8);

z-index:100001;

display:none;

-webkit-will-change:background;

will-change:background;

}

.layer-content {

text-align:center;

color:#333;

font-size:0.9em;

padding:0 5px;

display:inline-block;

width:40%;

max-width:200px;

height:80px;

line-height:80px;

background:#fff;

position:absolute;

top:50%;

left:50%;

-webkit-transform:translate(-50%,-50%);

transform:translate(-50%,-50%);

border-radius:5px;

}

.layer-content>div {

overflow:hidden;

white-space:nowrap;

text-overflow:ellipsis;

}

.lock {

overflow:hidden;

touch-action:none;

}

.lock body {

overflow:hidden;

touch-action:none;

margin-right:17px;

}

.lock.mobile body {

margin-right:0;

}

function PopupLayer(options) {

this.eles = [];

this.times = [];

this.contents = [];

this.time = 0;

this.animation = false;

this.isMobile = navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i);

if(this.isMobile){

document.querySelector("html").classList.add("mobile");

}

// init layer

var html = '

';

this.layer = document.createElement('div');

this.layer.className = "layer J_layer";

this.layer.innerHTML = html;

document.body.appendChild(this.layer);

this.addElement = function(ele_options){

if(!ele_options.ele){

console.log("need ele option.");

return;

}

// init trigger element

document.querySelector(ele_options.ele).classList.add("J_popup");

this.times.push(ele_options.time);

this.eles.push(ele_options.ele);

this.contents.push(ele_options.content);

};

this.forbidScroll = function(e) {

e.preventDefault && e.preventDefault();

e.returnValue = false;

e.stopPropagation && e.stopPropagation();

return false;

}

var me = this;

this.toggleShow = function(){

var now = +new Date();

if(now-1){

document.querySelector(".layer-content .content").innerText = me.contents[index];

me.time = me.times[index];

break;

}

}

me.showLayer();

if(me.time){

setTimeout(function(){

me.hideLayer();

},me.time+me.trans_time);

}

} else if (e.target.classList.contains("J_layer")) {

me.hideLayer();

}

});

}

var layer = new PopupLayer();

layer.addElement({

ele: '.popup',

content: 'content of layer'

});

layer.addElement({

ele: '.popup300',

content: 'content of layer 300',

time: 300

})

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

css禁止滑动页面_弹出层完美禁止页面滚动 的相关文章

  • 研一Python基础课程第二周课后习题分享(含代码)

    一 问题描述 共计18道 1 问题1 你买了n个苹果 但是很不幸里面混进了一条虫子 如果虫子每x小时吃完一只苹果 然后开始吃下一个 经过y小时后 你还有几个完整的苹果 分别输入n x y三个整型数值 输出结果 2 问题2 分别输入两个时间
  • javascript 实现Base64加密

    想必大家对base64并不陌生吧 在本文将为大家介绍下Js中的base64加密解密过程 感兴趣的朋友不要错过 html view plain copy
  • 关于存储那些事1-----基础篇

    目录 一 SSD 1 简介 1 1 分类 1 1 1 易失性存储器 1 1 2 非易失性存储器 2 SSD接口 2 1 SATA接口 2 2 SATA Express接口 2 3 SAS接口 2 4 U 2接口 2 5 mSATA接口 2
  • 【解决方案】LaTeX插入svg图片

    LaTeX插入svg图片的解决方案 今天在写论文时 想在论文里插入svg图片 遇到了问题 百度了一下方法 发现LaTeX不支持插入svg图片 在捣鼓了一下之后 发现基本的方法不是失效就是比较麻烦 本文简单总结了两个解决方案 发现都不太行 研
  • 系统及服务器巡检流程图,巡检日常工作流程图

    巡检日常工作流程图 由会员分享 可在线阅读 更多相关 巡检日常工作流程图 1页珍藏版 请在人人文库网上搜索 1 质质检检日日常常巡巡检检流流程程图图 查查看看生生产产交交接接半半成成品品或或成成品品 初初步步确确定定生生产产零零件件 准准备
  • Win10下安装mujuco

    1 背景 安装mujuco之前玩的环境都是些简单的 易处理的环境 就是下面这种 第一张图是移动下面的方块保持杆子立起来环境 第二张图是小车爬山环境 第三张图是给杆子施加力使得杆子保持立起来环境 从图也可以看出 是比较简单的环境 而mujuc
  • 批量文本文件内容替换之Linux sed命令

    文章目录 sed命令简介 需求 sed实现批量替换 sed命令简介 Linux sed命令可以使用shell脚本进行文件的批量处理 如批量替换 修改等等 尤其是在需要对大量文本文件进行批量操作时 使用sed命令会起到事半功倍的效果 关于详细
  • 其他-08-idea配置查询字节码

    1 字节码查询 查看一下idea是否安装了 一般都安装了 编译一下 生成target 点击View下面的Show ByteCode即可 其实你看到的字节码是java加工多的 可以看下这个类 原生都是数字 以 helloWql方法字节码解释
  • 为何程序员完成最后20%的工作需要的时间跟之前的80%一样多?

    听过行百里者半九十吧 这句话在程序员的工作中同样适用 到底是为何呢 Matija用一个精巧的比喻揭示了个中道理 其实这就好比在高峰期从郊外开车回市中心 前 80 的路程很顺 高速嘛 可能两小时就走完了 但是到了城里 就走不动了 红绿灯 人行
  • MATLAB点云处理函数整理

    pcbin 空间bin点云点 bins pcbin ptCloud numBins bins pcbin ptCloud numBins spatialLimits bins binLocations pcbin pcdenoise 去噪
  • 数据结构与算法之二叉树的建立

    文章目录 一 已知二叉树的先序和中序数列 创建二叉树 1 算法思想 2 代码实现 二 已知二叉树的先序和后序数列 创建二叉树 1 算法思想 2 代码实现 三 二叉树的顺序存放 打印先 中 后序遍历 一 已知二叉树的先序和中序数列 创建二叉树
  • Java图形化界面编程一

    目录 一 介绍 二 AWT编程 2 1AWT介绍 2 2 AWT继承体系 2 3 Container容器 2 3 1 Container继承体系 2 3 2 常见API 2 3 3 容器演示 2 4 LayoutManager布局管理器 2
  • Keras使用VGG16模型预测自己的图片

    Keras使用VGG16模型预测自己的图片 环境 Win10 Miniconda3 Pycharm2018 02 代码如下 from keras applications vgg16 import VGG16 from keras prep
  • 计算机视觉课程设计:基于Mediapipe的体感游戏设计

    演示视频 计算机视觉课程设计 基于Mediapipe的体感游戏设计 哔哩哔哩 bilibili
  • SpringCloud微服务架构标准版本拓扑图

    本图是公司需要 自己整理的SpringCloud微服务架构标准版本拓扑图 有 eddx格式 需要请私信 为了方便截了个jpg 希望对你有所帮助 喜欢的朋友点赞收藏转发
  • Cow Marathon(树的直径)(最长路)

    Cow Marathon Time Limit 2000MS Memory Limit 30000KB 64bit IO Format lld llu Submit Status Description After hearing abou
  • 【树莓派】利用tesseract进行汉字识别

    树莓派 利用tesseract进行汉字识别 安装tesseract库 识别图像中的汉字 安装tesseract库 安装tesseract库和它的python封装 sudo apt install tesseract ocr fix miss
  • Python学习-----文件操作(读写定位篇)

    目录 前言 1 打开文件 open 关闭文件 close 2 文件的读取 文件变量名 f 1 整体读取 read 2 读取一行 readline 3 读取多行 readlines 3 文件的写入 文件变量名f write 4 判断文件的可读

随机推荐

  • 稀疏矩阵的存储格式(Sparse Matrix Formats)

    稀疏矩阵的存储格式 Sparse Matrix Storage Formats 1 Coordinate Format COO 这种存储方式的主要优点是灵活 简单 仅存储非零元素以及每个非零元素的坐标 使用3个数组进行存储 values r
  • 解决使用OpenCV-Python外接摄像头打不开问题 re_MSMF::grabFrame videoio(MSMF): can‘t grab frame. Error: -1072873822

    记录在学习django opencv做人脸识别时遇到了以下错误 re MSMF grabFrame videoio MSMF can t grab frame Error 1072873822 直接在 py文件运行 能使用本机的摄像头 放到
  • java Image转byte

    public static byte getImageToByteArr Image src throws IOException int width int src getWidth null int height int src get
  • Flink学习19:算子介绍keyBy

    1 keyBy简介 主要作用 把相同的数据 汇总到相同的分区中 数据本来是分布在不同的slot中 keyBy会把相同的数据拉到相同的slot中 2 keyBy的使用 在使用keyBy时候 需要向keyBy传递一个参数 告诉其按照哪个字段进行
  • 2022-01-12 网工基础(二十)GRE原理与配置 VRRP原理与配置

    一 GRE原理与配置 IPSec VPN 用于在两个端点之间提供安全的 IP 通信 但只能加密并传播单播数据无法加密和传输语音 视频 动态路由协议信息等组播数据流量 通用路由封装协议 GRE Generic Routing Encapsul
  • ​路由器是如何工作的?

    什么叫路由 路由器的英文是 Router 也就是 找路的工具 找什么路 寻找各个网络节点之间的路 换句话说 路由器就像是快递中转站 包裹会经过一个个的中转站 从遥远的地方寄到你家附近 数据包也是一样 路由器是连接两个网络的硬件设备 承担寻路
  • Linux部署东方通TongWeb

    Linux部署东方通TongWeb TongWeb 一 软件版本 二 东方通TongWeb7部署流程 2 1 安装JDK 2 1 1 下载文件 2 1 2 查看当前JDK版本 2 1 3 卸载JDK 2 3 1 卸载JDK 需root权限
  • mmsegmentation 训练自己的数据集

    一 MMSegmentation是什么 MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱 它是 OpenMMLab 项目的一部分 他与MMDetection类似 集成了各种语义分割算法 可以快速验证语义分割效果
  • 关于HTML5中表单提交的几种验证方法介绍

    转自 微点阅读 https www weidianyuedu com 一 自动验证 我们可以通过元素的属性设置 进行表单提交的验证 required属性 此属性可以应用在大多数输入元素上 除了隐藏元素 图片元素按钮上 提交时 如果元素为空
  • MVVM和MVC有什么区别?

    前言 模型 视图 视图模型 Model View ViewModel MVVM 本质上是MVC 模型 视图 控制器 的改进版 其最重要的特性是数据绑定 data binding 此外还包括依赖注入 路由配置 数据模板等一些特性 从MVC到M
  • Python+Neo4j构建时光网TOP100电影知识图谱

    Python Neo4j构建时光网TOP100电影知识图谱 环境 1 Neo4j 3 5 6 2019年6月25日 2 Java 1 8 0 181 3 Annaconda 3 一 准备工作 Neo4j安装 https blog csdn
  • 随机森林详解

    原文链接 机器学习之随机森林 RF 详解 文章目录 一 bagging算法 1 简介 2 bagging算法流程 二 随机森林 1 简介 2 CART分类树的生成 3 总结 常用集成学习包括Bagging Boosting Stacking
  • SpringCloud-Alibaba整合Nacos+Seata+Mybatis-Plus

    SpringCloud Alibaba整合Nacos Seata Mybatis Plus Seata Example 项目说明 准备工作 配置数据库 创建 undo log 表 创建 示例中 业务所需要的数据库表 启动 Seata Ser
  • 基于spring boot实现企业微信登录

    基于spring boot实现企业微信登录
  • JS关键字、保留字(日志)

    关键字 是指JS本身已经使用了的字 不能再用它们充当变量名 方法名 包括 break case catch continue default delete do else finally for function if in instanc
  • docker安装fastdfs集群

    在dockerhub上搜索fastdfs 我选择了使用最多的星星最多的镜像 season fastdfs 拉取镜像 docker pull season fastdfs 创建数据卷 docker volume create tracker
  • 恒指李阳12.9日预测及操作建议

    恒指早盘资讯 上周五美股集体收涨 道指收涨逾330点 标普500指数收涨0 91 科技股普涨 苹果涨近2 再创历史新高 港股ADR指数小幅下跌 按比例计算 收报26489点 跌9 13点或0 03 汇丰控股收报57 74元 较港收市升0 2
  • 避免同一个文件被include多次

    在C C 中 为了避免同一个文件被include多次 有两种方式 一种是 ifndef方式 一种是 pragma once方式 在头文件的最开始加入 ifndef ifndef的是方式是受C C 语言标准支持 ifndef方式依赖于宏名不能
  • TS 的类

    一 基础语法 class Person constructor 二 类的属性 1 属性的初始化 在 TS 中 我们如果在要 constructor 中定义一个属性 必须先在 constructor 之前对数据进行初始化 class Pers
  • css禁止滑动页面_弹出层完美禁止页面滚动

    Html Css Js 弹出层去除背景滚动 原生版 使用js构建的弹出层类 使用new的方式实例化 传入的参数为 el 触发元素 click触发弹出层 content 弹出层内容 time 0 显示持续时间 使用 passive 事件和ov