js解决移动端滚动穿透问题方案详解

 更新时间:2023年07月28日 10:11:58   作者:吃和远方  
这篇文章主要为大家介绍了js解决移动端滚动穿透问题方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

移动端有可滚动的弹窗肯定会遇到的问题,滑动弹层背景跟着滚动,如果弹窗里面的内容不需要滚动的可以直接粗暴的把滚动事件禁用掉,但是如果弹窗内容过多需要滚动那就不可以这样做。

更正(只适合白色背景的页面!只适合白色背景的页面!只适合白色背景的页面!因为有时候会出现闪白!我也没有找到完美解决滚动穿透的办法)

vue的解决办法

isShowDialog是控制弹窗显示的,监听isShowDialog的改变,对watch使用不明白的可以去看vue侦听器

watch:{
// 如果 ` isShowDialog` 发生改变,这个函数就会运行,第一个参数是isShowDialog最新的值
    isShowDialog(val){
        this.scrollForbid(val)
    }
}
scrollForbid(val) {
    let body = document.body
    if(val){
        // 弹窗显示的时候
        this.scrollTop = window.scrollY
        body.style.width = '100%'
        body.style.position = 'fixed'
        body.style.top = -this.scrollTop + 'px'
    } else {
        // 弹窗关闭
        body.style.width = ''
        body.style.position = ''
        body.style.top = ''
        window.srcollTo(0,this.scrollTop)
    }
}

原生js解决办法

如果用原生来写的话调用scrollForbid(val)方法,禁止滚动的时候传true,解除滚动传false过去就可以了。

以上就是js解决移动端滚动穿透问题方案详解的详细内容,更多关于js移动端滚动穿透的资料请关注脚本之家其它相关文章!

相关文章

  • Electron 剪贴板实现示例详解

    Electron 剪贴板实现示例详解

    这篇文章主要为大家介绍了Electron 剪贴板实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 前端必会的package.json创建及常见属性用法示例详解

    前端必会的package.json创建及常见属性用法示例详解

    这篇文章主要为大家介绍了前端必会的package.json创建及常见属性用法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 微信小程序登录态控制深入分析

    微信小程序登录态控制深入分析

    这篇文章主要介绍了微信小程序登录态控制深入分析的相关资料,需要的朋友可以参考下
    2017-04-04
  • 微信小程序 MD5加密登录密码详解及实例代码

    微信小程序 MD5加密登录密码详解及实例代码

    这篇文章主要介绍了微信小程序 MD5加密登录密码详解及实例代码的相关资料,这里附有实例代码,需要的朋友可以参考下
    2017-01-01
  • JavaScript实际应用:innerHTMl和确认提示的使用

    JavaScript实际应用:innerHTMl和确认提示的使用

    JavaScript实际应用:innerHTMl和确认提示的使用...
    2006-06-06
  • 前端 JavaScript运行原理

    前端 JavaScript运行原理

    这篇文章主要介绍了前端 JavaScript运行原理,JavaScript引擎是一个计算机程序,它的主要作用是JavaScript运行时将源码编译为机器码。每个主流Web浏览器都有自己的JavaScript引擎,它通常由web浏览器供应商开发,接下来一起来看看文章的详细内容吧
    2021-10-10
  • umi插件开发仿dumi项目实现基础路由解析

    umi插件开发仿dumi项目实现基础路由解析

    这篇文章主要为大家介绍了umi插件开发仿dumi项目实现基础路由解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 微信小程序中setInterval的使用方法

    微信小程序中setInterval的使用方法

    这篇文章主要介绍了微信小程序中setInterval的使用方法的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • 浅谈JavaScript作用域

    浅谈JavaScript作用域

    这篇文章主要介绍了JavaScript作用域详情,作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突,下面文章我们一起来了解更多的详细内容,需要的小伙伴也可以参考一下
    2021-12-12
  • JQ中$(window).load和$(document).ready区别与执行顺序

    JQ中$(window).load和$(document).ready区别与执行顺序

    JQ中的$(document).ready()大家应该用的非常多,基本每个JS脚本中都有这个函数的出现有时甚至会出现多个,那么另一个加载函数$(window).load相对出现的次数就很少了,下面为大家介绍一下两者的区别与他们的执行顺序
    2017-03-03

最新评论