vue 弹框产生的滚动穿透问题的解决
作者:Peggy7 发布时间:2024-04-26 17:40:54
标签:vue,弹框,滚动穿透
最近开发过程中遇到一些小问题(似乎问题总是那么多),但一直没什么时间去优化与解决。程序员不能被业务绑架,有时间还是花点在代码,开始这次的vue尝试吧。
首先定义一个全局样式:
.noscroll{
position: fixed;
left: 0;
top: 0;
width: 100%;
}
创建一个dom.js文件,定义几个方法:
export function hasClass(el, className) {
let reg = new RegExp('(^|\\s)' + className + '(\\s|$)')
return reg.test(el.className)
}
export function addClass(el, className) {
if (hasClass(el, className)) {
return
}
if(el.className === ''){
el.className += className
}else{
let newClass = el.className.split(' ')
newClass.push(className)
el.className = newClass.join(' ')
}
}
export function removeClass(el,className) {
if (hasClass(el, className)) {
el.className = el.className.replace(new RegExp('(\\s|^)' + className + '(\\s|$)'), '');
};
}
获取<html>标签的DOM:
this.htmlDom = document.getElementsByTagName('html')[0];
在弹框弹出来的时候:
addClass(this.htmlDom, 'noscroll');
弹框关闭的时候
removeClass(this.htmlDom, 'noscroll');
这样就可以解决滚动穿透的问题了~
来源:https://segmentfault.com/a/1190000016481693
0
投稿
猜你喜欢
- 一、创建虚拟环境python -m venv env通过执行命令,创建一个名为env的虚拟环境,命令执行完毕后会出现一个env文件夹,这是一
- 1. 前言对于列表类型的大量数据,前端展示往往采用 分页 和 无限滚动 的方式来展示,对于用户来说,鼠标滚轮和触控屏使滚动行为要比点击更快更
- 在生活之中,我们想要去一个很远的地方,可能先走到坐车的地方,再从乘车去目的地。那么,我们是不是可以理解成函数嵌套也是这样,需要不同函数的组合
- 创建游戏文件 2048.py首先导入需要的包:import cursesfrom random import randrange, choi
- 1.使用效果如下面动图所示,点击取色按钮后,将鼠标移动到想要取色的位置,等待两秒即可取色:点击save color按钮可以将颜色存储到col
- 本文实例讲述了Python minidom模块用法。分享给大家供大家参考,具体如下:一、DOM写XML文件# -*- coding:utf-
- 进入root 权限下apt-get install mysql-serverapt-get install mysql-client创建数据
- 不少小伙伴认为,直接去操作excel,比我们利用各种代码数据去处理,直接又简单,不那么花里胡哨,但是在代码上,处理数据,直接的软件操作是行不
- 今天登录社区的时候看到有之前的文章有个留言的评论,说如何统计typecho所有文章的字数,这里分享一下代码。在当前主题的functions.
- 最近开始学习Python,但只限于看理论,编几行代码,觉得没有意思,就想能不能用Python编写可视化的界面。遂查找了相关资料,发现了PyQ
- 在图像分割领域,一个重要任务便是分割出感兴趣(ROI)区域。如果是简易的矩形ROI区域其实是非常容易分割的,opencv的官方python教
- SQL语言查询基础:连接查询 通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系
- 在实际的机器学习项目中,我们通常需要将训练好的模型保存到磁盘,以便在以后的时间点进行推理或重新训练。同样地,我们也需要从磁盘加载模型以供使用
- 在使用javascript过程中,想循环遍历一个数组,经常使用的语法有两种: for (var i; i < array.l
- 相信许多小伙伴都玩过数字 * 游戏,就是指在一定数字范围(一般是整数,不包含边界)里,一个玩家选中一个数字当作 * ,其余玩家在这个范围猜数字,
- 可以使用Python的email模块来实现带有附件的邮件的发送。SMTP (Simple Mail Transfer Protocol)邮件
- 用类和对象实现一个银行账户的资金交易管理, 包括存款、取款和打印交易详情, 交易详情中包含每次交易的时间、存款或者取款的金额、每次交易后的余
- 介绍SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下:SUM(DISTINCT expression)SUM()函数是如
- 实现一个AuditLog的功能,是B/S结构专案。 每个用户可以登录系统,在程序中操作数据(添加,更新和删除)需要实现记录操作跟踪。是谁添加
- 监测主机存活的端口#!/usr/bin/env python# coding-utfimport argparseimport socket