最近,公司的一个终于结束了,有几天变得不那么忙了,于是看起了公司前人写的代码。几乎每个项目都会用到这样一个效果,就是查询的时候,会弹出一个Div,让DIv居中,同时会有一个灰色的遮盖层。因为用户的面向机关人员,因此测试时几乎只会用IE或者IE内核的浏览器。为了测试流程是否正确,经常会用到几个账号,有时候就会造成Session共享,让数据变得不正确。因此,我会使用火狐,发现两个js代码并不能兼容非IE的浏览器,于是趁着时间自己写了一点代码(以下代码使用Jquery,需引用Jquery包)。

  html代码如下

  <div id="testDiv" style="position:absolute; width:303px; height:100px; background-color:Yellow; display:none;"></div> <input type="button"  onclick="SetDivAtCenter('testDiv')" value="click"/ >

  让层居中的js代码如下 

        function SetDivAtCenter(divID) {var newTop = $(document).height() / 2 - $("#" + divID).height() / 2 - 100;var newLeft = $(document).width() / 2 - $("#" + divID).width() / 2;$("#" + divID).css("left", newLeft);$("#" + divID).css("top", newTop);$("#" + divID).show();useLayMaskModels();//显示遮挡层}  

  显示遮挡层代码如下

function useLayMaskModels() {var obj_Mask = $("#divMask");if (obj_Mask.length != 0) {var state = obj_Mask.css("display");if (state == "none") {obj_Mask.show();}else {obj_Mask.hide();}}else {$(document.body).append("<div id='divMask' style='left:0px;top:0px;width:100%;height:100%;background-color:#B3B3B3;z-index=-1;position:absolute;'></div>");}}

  下面是event的一些属性,应该是有用的

  

event

IE
左键是 window.event.button = 1
右键是 window.event.button = 2
中键是 window.event.button = 4
没有按键动作window.event.button = 0 Firefox
左键是 event.button = 0
右键是 event.button = 2
中键是 event.button = 1
没有按键动作 event.button = 0 Opera 7.23/7.54
鼠标左键是 window.event.button = 1
没有按键动作 window.event.button = 1
右键和中键无法获取 Opera 7.60/8.0
鼠标左键是 window.event.button = 0
没有按键动作 window.event.button = 0
右键和中键无法获取 另外:屏蔽右键的是window.event.button = 3 ************************************************************ Window.event对象代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
Window.event对象只在事件发生的过程中才有效。
Window.event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。
如果事件触发后,鼠标移出窗口外,则返回的值为 -1 ,这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。 Event对象的属性有:
altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX, screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y 下面简单的描述一下它的这些属性:
1.altKey
描述: 检查alt键的状态。
语法: event.altKey
可能的值: 当alt键按下时,值为 TRUE ,否则为 FALSE 。只读。 2.button
描述: 检查按下的鼠标键。
语法: event.button
可能的值:
0 没按键 ;1 按左键 ;2 按右键 ;3 按左右键 ;4 按中间键 ;5 按左键和中间键 ;6 按右键和中间键 ;7 按所有的键
这个属性仅用于onmousedown, onmouseup, 和 onmousemove 事件。对其他事件,不管鼠标状态如何,都返回 0(比如onclick)。 3.cancelBubble
描述: 检测是否接受上层元素的事件的控制。
语法: event.cancelBubble[ = cancelBubble]
可能的值: 这是一个可读写的布尔值
TRUE 不被上层原素的事件控制。
FALSE 允许被上层元素的事件控制。这是默认值。 4.clientX
描述: 返回鼠标在窗口客户区域中的X坐标。
语法: event.clientX
注释: 这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。5.clientY
描述: 返回鼠标在窗口客户区域中的Y坐标。
语法: event.clientY
注释: 这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。6.ctrlKey
描述: 检查ctrl键的状态。
语法: event.ctrlKey
可能的值: 当ctrl键按下时,值为 TRUE ,否则为 FALSE 。只读。 7.fromElement
描述: 检测 onmouseover 和 onmouseout 事件发生时,鼠标所离开的元素。 参考18.toElement
语法: event.fromElement
注释: 这是个只读属性。 8.keyCode
描述:检测键盘事件相对应的内码。 这个属性用于 onkeydown, onkeyup, 和 onkeypress 事件。
语法: event.keyCode[ = keyCode]
可能的值: 这是个可读写的值,可以是任何一个Unicode键盘内码。如果没有引发键盘事件,则该值为 0 。9.offsetX
描述: 检查相对于触发事件的对象,鼠标位置的水平坐标
语法: event.offsetX 10.offsetY
描述: 检查相对于触发事件的对象,鼠标位置的垂直坐标
语法: event.offsetY 11.propertyName
描述: 设置或返回元素的变化了的属性的名称。
语法: event.propertyName [ = sProperty ]
可能的值: sProperty 是一个字符串,指定或返回触发事件的元素在事件中变化了的属性的名称。
注释:这个属性是可读写的。无默认值。你可以通过使用 onpropertychange 事件,得到 propertyName 的值。 12.returnValue
描述: 设置或检查从事件中返回的值
语法: event.returnValue[ = Boolean]
可能的值: true 事件中的值被返回
false 源对象上事件的默认操作被取消 13.screenX
描述: 检测鼠标相对于用户屏幕的水平位置
语法: event.screenX
注释: 这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。14.screenY
描述: 检测鼠标相对于用户屏幕的垂直位置
语法: event.screenY
注释: 这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。15.shiftKey
描述: 检查shift键的状态。
语法: event.shiftKey
可能的值: 当shift键按下时,值为 TRUE ,否则为 FALSE 。只读。 16.srcElement
描述: 返回触发事件的元素。只读。例子见本文开头。
语法: event.srcElement 17.srcFilter
描述: 返回触发 onfilterchange 事件的滤镜。只读。
语法: event.srcFilter 18.toElement
描述: 检测 onmouseover 和 onmouseout 事件发生时,鼠标所进入的元素。 参考7.fromElement
语法: event.toElement
注释: 这是个只读属性。 19.type
描述: 返回事件名。
语法: event.type
注释: 返回没有“on”作为前缀的事件名,比如,onclick事件返回的type是click 只读。 20. x
描述: 返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。
语法: event.x
注释: 如果事件触发后,鼠标移出窗口外,则返回的值为 -1
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。 21. y
描述: 返回鼠标相对于css属性中有position属性的上级元素的y轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。
语法: event.y 

运行效果如下

转载于:https://www.cnblogs.com/xianrongbin/archive/2013/03/24/2978649.html

js让显示层居中且有遮挡层(IE,火狐,Chrome均可)相关推荐

  1. javascript的原型,原型链,内置对象 拖曳对话框 放大镜显示和隐藏遮挡层及大层

    图片跟着鼠标飞 1.<!DOCTYPE html><html lang="en"> <head> <meta charset=" ...

  2. html 弹出层 边框半透明,js+CSS实现弹出居中背景半透明div层的方法

    本文实例讲述了js+CSS实现弹出居中背景半透明div层的方法.分享给大家供大家参考.具体实现方法如下: js+CSS弹出居中的背景半透明div层 body{margin:0px;} #bg{widt ...

  3. 层内容被FLASH遮挡解决办法

    层内容被FLASH遮挡解决办法 今天在调整公司网站是发现,在视频播放的页面,分享按钮弹出推荐层会被flash播放器遮挡,给层加上z-index也不起作用,如是去google了一下,找到一些方法: wm ...

  4. three.js 导入显示模型的时候自动计算模型缩放比例

    three.js 导入显示模型的时候自动计算模型缩放比例 导入模型(以.stl文件为例),项目是用vue 做的,如果是html就把_this去掉 var _this = this; var loade ...

  5. ArcGIS JS API 4.X实现动态地图服务子图层显隐控制

    ArcGIS JS API 4.X实现动态地图服务子图层显隐控制 文章目录 ArcGIS JS API 4.X实现动态地图服务子图层显隐控制 使用场景 官网示例 注意事项 使用场景 图层控制功能 官网 ...

  6. js 正则 显示千分号 支持整数和小数

    js 正则 显示千分号 支持整数和小数: "1344328888341.2342".replace(/^(-?\d+?)((?:\d{3})+)(?=.\d+∣|∣)/, func ...

  7. 关于ArcGIS动态图层空间内栅格数据,JS前端显示颜色不正确的解决方案

    关于ArcGIS动态图层空间内栅格数据,JS前端显示颜色不正确的解决方案 参考文章: (1)关于ArcGIS动态图层空间内栅格数据,JS前端显示颜色不正确的解决方案 (2)https://www.cn ...

  8. IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层、Dialog的问题

    IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层.Dialog的问题 参考文章: (1)IE6下使用jquery.bgiframe.js插件解决下拉框覆盖浮动层.Dialog的 ...

  9. LayUI数据表格复选框显示不居中问题

    LayUI数据表格复选框显示不居中问题 样式(layui.css)文件中增加: .layui-table-cell .layui-form-checkbox[lay-skin="primar ...

最新文章

  1. [转]马云在《赢在中国》对创业者的经典点评
  2. Linux 编程中的API函数和系统调用的关系【转】
  3. node.js下载安装并配置WebStrom
  4. springboot 入门教程(1)
  5. requests-获取cookie-0223
  6. 二进制和八进制表示法
  7. python里的shell是什么_Python与shell的3种交互方式介绍
  8. 常用库函数_跑马灯实验和我为什么使用库函数?
  9. 你们学习前端都是靠自学吗?
  10. 字节跳动教育部分开始裁员,N+2赔付...一大波读者失业
  11. 图书管理系统c语言ns图,图书管理系统流程图.doc
  12. 人体的能量场是什么?
  13. 解密国内BAT等大厂前端技术体系-腾讯篇(长文建议收藏)
  14. mybatis报错:argument type mismatch
  15. 维恩贝特面试java后端开发面试经验
  16. bootstrapvalidator已定义的验证规则
  17. 科技社计算机部长竞选演讲稿,关于部长竞选演讲稿(精选6篇)
  18. 活动预告:专访Velo,跨境金融的商业落地探索 | TI对话首席
  19. 如何读懂交易伙伴的EDI需求
  20. RFI/RFP/RFQ

热门文章

  1. 虎牙改名字服务器升级维护中,王一博“虎牙直播”被占id,无奈改了名字,新名字却被吐槽...
  2. 【ZJCPC2018 第15届 浙江省赛】The 15th Zhejiang Provincial Collegiate Programming Contest(MABLJK 6题)
  3. Protocol ‘https‘ not on whitelist ‘file,crypto‘ ——m3u8下载协议不在白名单,m3u8下载器推荐
  4. 【NOIP2001】【Luogu1025】数的划分(可行性剪枝,上下界剪枝)
  5. NYOJ243 - 交换输出
  6. linux用cmake编译,CMake使用简介(forLinux)
  7. 微信h5实现分享给朋友url改变_h5微信自定义分享
  8. bigdecimal 减_市市场监管局多措并举推进高频事项“减时效”
  9. 待起飞的の集训8.5
  10. 基于IntelliJIdea2020.3创建web项目