JS弹出层制作,以及移动端禁止弹出层下内容滚动,overflow:hidden移动端失效问题
HTML
<div class="layer">
<div class="menu-list">
<span>社会</span>
<span>历史</span>
<span>军事</span>
<span>娱乐</span>
<span>电影</span>
<span>财经</span>
<span>体育</span>
<span>科技</span>
<span>手机</span>
<span>健康</span>
<span>情感</span>
<span>亲子</span>
</div>
</div>
CSS
.preHander{
overflow: hidden;
}
当设置背景层内容overflow:hidden的时候在PC端和模拟器上的有的,但是到的安卓、IOS真机运行的时候失效!
JS
$('.menu').click(function(){
$('.layer').show()
var scroTop=$(document).scrollTop() //滚动条距离顶部的位置
$('.layer').css('top',scroTop+'px') //弹出框顶部位置
$('.menu-list').css('z-index','9999')
$('html,body').addClass('preHander') //禁止弹出框下面内容滚动,但是在真机运行失效// 添加触摸监听事件,如果手指触摸到阴影区域,弹出层消失!
document.addEventListener('touchstart',touch, false)
function touch(event){
var event=event || window.event;
if(!$(event.target).is($('.menu-list'))&&$(event.target).parent('.menu-list').length===){
$(".layer").hide();
$('html,body').removeClass('preHander') //解除弹出框下面内容滚动
}
}
})
所以为了禁止弹出层下内容的滚动,必须要禁止滑动事件传递到下一层,所以要防止滑动事件冒泡
// 当弹出层出现的时候,禁止弹出层背景层滑动,阻止事件传递冒泡
function move(e){
e.preventDefault();//禁止事件冒泡
}
当弹出层出现的时候
// 当弹出层出现的时候,禁止弹出层背景层滑动,阻止事件传递冒泡
function move(e){
e.preventDefault();//禁止事件冒泡
}
$('.layer').on('touchmove',move, false)//弹出层出现,弹出层的背景层阻止默认滑动事件
所以最后的JS应该是
// 点击菜单函数封装=========================================================
function menushow(){
$('.menu').click(function(){
$('.layer').show()
var scroTop=$(document).scrollTop() //滚动条距离浏览器顶部的位置
$('.layer').css('top',scroTop+'px') //弹出框顶部相对于浏览器的位置,就是在可视窗口的顶部
$('.menu-list').css('z-index','')
// 当弹出层出现的时候,禁止弹出层背景层滑动,阻止事件传递冒泡
function move(e){
e.preventDefault();//禁止事件冒泡
}
$('.layer').on('touchmove',move, false)//弹出层出现,弹出层的背景层阻止默认滑动事件
// 添加触摸监听事件,如果手指触摸到阴影区域,弹出层消失!
document.addEventListener('touchstart',touch, false)
function touch(event){
var event=event || window.event;
if(!$(event.target).is($('.menu-list'))&&$(event.target).parent('.menu-list').length===){
$(".layer").hide();
}
}
})
}
JS弹出层制作,以及移动端禁止弹出层下内容滚动,overflow:hidden移动端失效问题的更多相关文章
- jquery制作弹出层带遮罩效果,点击阴影部分层消失
jquery制作弹出层带遮罩效果,点击阴影部分层消失. 整体还是比较简单的. HTML代码很简单 <a href="#" class="big-link" ...
- pc端有弹出层 并有滚动的时候遇到的问题以及解决
有时候页面会遇到这样一个问题,页面有个弹出层 ,弹出层是有动条的,当弹出层滚完的时候,后面的页面也会滚动,但是我们希望是后面的页面不滚动;代码如下 1:弹出层出现的时候设置 $('body').css ...
- JQuery弹出层,点击按钮后弹出遮罩层,有关闭按钮【转】
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- 每日技术总结:Better-scroll应用于弹出层内容滚动
一.Better-scroll在项目中的应用 Better-scroll这款滚动插件还是很好用的,通常不会有什么问题.但偶尔总会出点意外.今天再次使用better-scroll,记录一下这次顺利的过程 ...
- layui弹出层处理(获取、操作弹出层数据等)
要点: 字符串被渲染为弹窗层之后,回自动转换为DOM,可以使用jq进行各种操作 <!DOCTYPE html> <html> <head> <meta cha ...
- JS组件系列——Bootstrap寒冬暖身篇:弹出框和提示框效果以及代码展示
前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编辑.在增加用户体验方面,弹出框和提示框起着重要的作用,如果你的 ...
- 移动端页面 弹出框滚动,底部body锁定,不滚动 / 微信网页禁止回弹效果
需求:页面有弹出层菜单,当弹出层菜单超出屏幕可视区域时,不能滚动.加上滚动后,底部body的滚动事件如何禁止,加上了overflow:hidden;还是不可用. 如下图:地区弹出框可以滚动,而底部的b ...
- 原生js日期时间插件鼠标点击文本框弹出日期时间表格选择日期时间
原文出处 (这是我从互联网上搜来的,感觉能满足各方面的需求.个人感觉挺不错的,所以后期修改了一下向大家推荐!) 效果图: html代码: <!DOCTYPE html PUBLIC " ...
- JS 判断 Radio 单选按钮是否为选中状态 并弹出 值信息
今天项目中所解决的问题:JS 判断 Radio 单选按钮是否为选中状态 并弹出 值信息,一开始总是获取不到 radio 的值,后来发现逻辑存在些问题,特此共享该代码留笔记 和 分享给遇到 这类问题的 ...
随机推荐
- 「JSOI2015」字符串树
「JSOI2015」字符串树 传送门 显然可以树上差分. 我们对于树上每一条从根出发的路径都开一 棵 \(\text{Trie}\) 树,那么我们就只需要在 \(\text{Trie}\) 树中插入一 ...
- css 属性值 calc (目前只了解部分)
移动端页面,有如下图的需求: 实现效果: 实现 css 代码: .list {/*父级*/ border: 1px solid #E9EAEA; border-radius: 2px; backgro ...
- [SUCTF 2019]Pythonginx
贴出源码 @app.route('/getUrl', methods=['GET', 'POST']) def getUrl(): url = request.args.get("url&q ...
- 实现简单Mybatis案例
Mybatis源码结构 Mybatis核心三大阶段 Mybatis初始化: 初始化过程: Configuration 类 SqlSession对外提供接口 翻译过程: SqlSession查询接口嵌套 ...
- 一个支持国密SM2/SM3/SM4/SM9/ZUC/SSL的密码工具箱
转:https://blog.csdn.net/xuq09/article/details/91815366 The GmSSL Project网址:http://gmssl.org/docs/qui ...
- Fedora26同步仓库缓存失败问题实记
虽然目前的linux已经能自动选择最快的源,但是官方提供的镜像列表仍然较少,速度虽有所提升但是整体依然较慢,阿里的源作为国内最快的源却没有被纳入官方提供的源中 国内常使用的源有阿里,中科大,清华,网易 ...
- 测量设备自动化-AK协议
1.AK协议定义 AK协议是控制器和测量设备之间通信的方式,广泛应用于整车耐久转毂等测试中,如AVL VECON.人们通常都是用VECON界面设置试验曲线,但通过AK可以实现设备的自动化.如下图所示: ...
- leetCode练题——9. Palindrome Number
1.题目 9. Palindrome Number Determine whether an integer is a palindrome. An integer is a palindrome ...
- css3内外阴影同时显示
内外阴影同时显示: box-shadow: 0px 0px 0.4rem rgba(255,255,255,0.5) inset,0px 0px 0.7rem rgba(185,119,143,0.9 ...
- 泛型和Object的区别?
泛型声明 public <T> T doSomeThing(T t){ return t; } Object声明 public Object doSomeThing(Object obj) ...