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 相关文章推荐
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 Javascript
js 调用父窗口的具体实现代码
Jul 15 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
Apr 25 Javascript
JavaScript中的函数嵌套使用
Jun 04 Javascript
javascript获取select值的方法分析
Jul 02 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
Oct 15 Javascript
JS实现六边形3D拖拽翻转效果的方法
Sep 11 Javascript
最全面的JS倒计时代码
Sep 17 Javascript
写给小白看的JavaScript异步
Nov 29 Javascript
JavaScript实现多球运动效果
Sep 07 Javascript
EXTJS7实现点击拖拉选择文本
Dec 17 Javascript
Java无向树分析 实现最小高度树
Apr 09 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中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
python使用xmlrpc实例讲解
2013/12/17 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
介绍一下UNIX启动过程
2013/11/14 面试题
会计助理岗位职责
2014/02/17 职场文书
班级寄语大全
2014/04/10 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
2014年营销工作总结
2014/11/22 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
药房管理制度范本
2015/08/06 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android