jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)

 更新时间:2016年08月25日 14:02:53   作者:王小伞  
实现弹出遮罩层的方法有很多种,接下来本文给大家介绍通过jquery操作dom实现弹出页面遮罩层以及web端和移动阻止遮罩层的滑动,对页面弹出遮罩层的相关知识感兴趣的朋友一起看看吧

最近项目遇到了遮罩层的一些问题,总结一下:

弹出遮罩层

遮罩层弹出有非常多的方法,这里只写出本人用的代码,使用jq操作dom的方法进行实现的。

<style>.box{position:absolute;width:100%;left:50%;height:auto;z-index:100;background-color:#f5f5f5;border:1px #ddd solid;padding:1px;}</style><div id="bg" v-click="closeMask()"></div>
<div class="box" style="display:none">
<input v-click="closeMask()" class="inpt_bottomb white" value="取 消" type="button" />
<div class="clear"></div>
</div> 
</div>

#bg为透明度为0.6的一个遮罩页面,.box为遮罩层上的按钮。

//弹出遮罩
$("#bg").css({
display: "block", height: $(document).height()
});
var $box = $('.box');
$box.css({
//设置弹出层距离左边的位置
left: ($("body").width() - $box.width()) / 2 -5 + "px",
//设置弹出层距离上面的位置
top: ($(window).height() - $box.height()) + $(window).scrollTop() + "px",
display: "block"
});

有了触发遮罩的行为后,设置遮罩的高度为整个页面高度和可见性可见,然后对按钮出现的位置进行定位布局的设置,需要注意的是top属性要加上滚轮的高度,这样会保证我们的按钮会一直在视线之内。

关闭遮罩时也只需设置可见性即可。

效果图

遇到问题

功能上是可以实现的,但还是有些缺陷问题,比如页面过长时遮罩层也会随着页面进行滑动,按钮的位置就会发生变化:

解决方案PC端

pc端的解决思路就是在弹出遮罩层的时候取消已经存在的滚动条,达到无法滚动的效果。

也就是说给body添加overflow:hidden属性即可,IE6、7下不会生效,需要给html增加overflow:hidden属性。

解决方案移动端

移动端取消滚动条是达不到效果的,这时就需要去除遮罩层和按钮层的touchmove的默认事件,代码如下:

$('.box,#bg').bind("touchmove",function(e){
e.preventDefault();
});

相关文章

  • jQuery中内容过滤器简单用法示例

    jQuery中内容过滤器简单用法示例

    这篇文章主要介绍了jQuery中内容过滤器简单用法,结合实例形式分析了jQuery中内容过滤器的相关概念、功能、应用场景及相关使用方法,需要的朋友可以参考下
    2018-03-03
  • 用JQuery在网页中实现分隔条功能的代码

    用JQuery在网页中实现分隔条功能的代码

    在C/S系统中有专门的分隔条控件,很方便实现,但在Asp.net中却没有。本文介绍了一种使用JQuery技术实现分隔条的功能
    2012-08-08
  • jQuery三组基本动画与自定义动画操作实例总结

    jQuery三组基本动画与自定义动画操作实例总结

    这篇文章主要介绍了jQuery三组基本动画与自定义动画操作,结合实例形式总结了jQuery基本动画函数与自定义动画相关操作技巧及使用注意事项,需要的朋友可以参考下
    2020-05-05
  • Jquery 选中表格一列并对表格排序实现原理

    Jquery 选中表格一列并对表格排序实现原理

    该实现的主要思想是:获取鼠标点击的表头单元格的列号,遍历数据行,获取每个<tr>中的html,同时获取每个<tr>标签下对应获取到的列号的<td>标签中的内容,并取得<th>标签的type属性值,需要的朋友可以了解下
    2012-12-12
  • Jquery的autocomplete插件用法及参数讲解

    Jquery的autocomplete插件用法及参数讲解

    今天小编就为大家分享一篇关于Jquery的autocomplete插件用法及参数讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • jQuery.holdReady()使用方法

    jQuery.holdReady()使用方法

    jQuery.holdReady()方法允许jQuery的完成事件被该函数锁定,下面为大家介绍下其具体的使用
    2014-05-05
  • 深入理解JQuery中的事件与动画

    深入理解JQuery中的事件与动画

    下面小编就为大家带来一篇深入理解JQuery中的事件与动画。小编觉得挺不错的,现在就分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-05-05
  • jQuery下的动画处理总结

    jQuery下的动画处理总结

    最近一年多一直在做前端的东西,由于老板在追求一些年轻动感的效果,让页面元素不能仅仅是简单的隐藏显示,所以经常会使用一些动画效果,发现jQuery的动画真心好用啊,把常用的几个总结一下,希望不再每次使用的时候还去翻API
    2013-10-10
  • jQuery实现的手动拖动控制进度条效果示例【测试可用】

    jQuery实现的手动拖动控制进度条效果示例【测试可用】

    这篇文章主要介绍了jQuery实现的手动拖动控制进度条效果,涉及jQuery事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2018-04-04
  • EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容

    EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容

    本篇文章主要介绍了easyUI的doCellTip 就是鼠标放到单元格上有个提示的功能,对于Javascript教程感兴趣的同学可以参考一下
    2016-08-08

最新评论