vue 弹框产生的滚动穿透问题的解决


Posted in Javascript onSeptember 21, 2018

最近开发过程中遇到一些小问题(似乎问题总是那么多),但一直没什么时间去优化与解决。程序员不能被业务绑架,有时间还是花点在代码,开始这次的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');

这样就可以解决滚动穿透的问题了~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
北京奥运官方网站幻灯切换效果flash版打包下载
Jan 30 Javascript
不同浏览器的怪癖小结
Jul 11 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
node.js中的fs.appendFile方法使用说明
Dec 17 Javascript
JS获取各种宽度、高度的简单介绍
Dec 19 Javascript
浅谈document.write()输出样式
May 07 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
Sep 06 Javascript
jQuery插件实现文字无缝向上滚动效果代码
Feb 25 Javascript
Axios学习笔记之使用方法教程
Jul 21 Javascript
Vue2.0 实现移动端图片上传功能
May 30 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
Layui表格行工具事件与数据回填方法
Sep 13 Javascript
vue-quill-editor富文本编辑器简单使用方法
Sep 21 #Javascript
探秘vue-rx 2.0(推荐)
Sep 21 #Javascript
Vue-Quill-Editor富文本编辑器的使用教程
Sep 21 #Javascript
vue+axios实现文件下载及vue中使用axios的实例
Sep 21 #Javascript
vue-rx的初步使用教程
Sep 21 #Javascript
基于Vue 服务端Cookies删除的问题
Sep 21 #Javascript
Vue中插入HTML代码的方法
Sep 21 #Javascript
You might like
php注入实例
2006/10/09 PHP
一个ubbcode的函数,速度很快.
2006/10/09 PHP
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python实现学校管理系统
2018/01/11 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
行政助理岗位职责范文
2013/12/03 职场文书
高职教师岗位职责
2013/12/24 职场文书
学习新党章思想汇报
2014/01/09 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
企业安全生产责任书
2014/04/14 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript