弹出层居中,滚动条滚动始终在屏幕中间
2010-12-31 11:42
134 查看
<script type="text/javascript"> var docEle = function() { return document.getElementById(arguments[0]) || false; } function openNewDiv(_id) { var m = "mask"; if (docEle(_id)) document.body.removeChild(docEle(_id)); if (docEle(m)) document.body.removeChild(docEle(m)); //mask遮罩层 var newMask = document.createElement("div"); newMask.id = m; newMask.style.position = "absolute"; newMask.style.zIndex = "1"; _scrollWidth = Math.max(document.body.scrollWidth,document.documentElement.scrollWidth); _scrollHeight = Math.max(document.body.scrollHeight,document.documentElement.scrollHeight); newMask.style.width = _scrollWidth + "px"; newMask.style.height = _scrollHeight + "px"; newMask.style.top = "0px"; newMask.style.left = "0px"; newMask.style.background = "#33393C"; newMask.style.filter = "alpha(opacity=40)"; newMask.style.opacity = "0.40"; document.body.appendChild(newMask); //新弹出层 var newDiv = document.createElement("div"); newDiv.id = _id; newDiv.style.position = "absolute"; newDiv.style.zIndex = "9999"; newDivWidth = 400; newDivHeight = 200; newDiv.style.width = newDivWidth + "px"; newDiv.style.height = newDivHeight + "px"; newDiv.style.top = (document.body.scrollTop + document.body.clientHeight/2 - newDivHeight/2) + "px"; newDiv.style.left = (document.body.scrollLeft + document.body.clientWidth/2 - newDivWidth/2) + "px"; newDiv.style.background = "#EFEFEF"; newDiv.style.border = "1px solid #860001"; newDiv.style.padding = "5px"; newDiv.innerHTML = " "; document.body.appendChild(newDiv); //弹出层滚动居中 function newDivCenter() { newDiv.style.top = (document.body.scrollTop + document.body.clientHeight/2 - newDivHeight/2) + "px"; newDiv.style.left = (document.body.scrollLeft + document.body.clientWidth/2 - newDivWidth/2) + "px"; } if(document.all) { window.attachEvent("onscroll",newDivCenter); } else { window.addEventListener('scroll',newDivCenter,false); } //关闭新图层和mask遮罩层 var newA = document.createElement("div"); newA.innerHTML ="取消"; var newB = document.createElement("TEXTAREA"); newB.setAttribute("cols","40"); newB.setAttribute("rows","10"); newA.onclick = function(){ if(document.all) { window.detachEvent("onscroll",newDivCenter); } else { window.removeEventListener('scroll',newDivCenter,false); } document.body.removeChild(docEle(_id)); document.body.removeChild(docEle(m)); return false; } newDiv.appendChild(newB); newDiv.appendChild(newA); } </script> <body> <a onclick="openNewDiv('newDiv');return false;" style="cursor:pointer">弹出层</a> <br><br><br><br><br><br><br><br><br><br><br><br><br><br> </body>
相关文章推荐
- 弹出div框,始终居中,不随屏幕滚动
- 【转载】jQuery弹出层始终垂直居中于当前屏幕
- 让弹出窗口在屏幕中间显示,没有滚动条,并且点击某行,窗口大小不变化.
- 弹出框始终保持居中(包括有滚动条和窗体缩放时)
- jQuery弹出层始终垂直居中相对于屏幕或当前窗口
- JQuery 弹出层,始终显示在屏幕正中间
- javascript实现页面右侧在线客服始终跟随鼠标滚动而上下滚动且始终位于屏幕中间
- jQuery弹出层始终垂直居中,相对于屏幕,相对于当前窗口
- jQuery弹出层始终垂直居中相对于屏幕或当前窗口
- 让弹出层始终显示在屏幕正中间
- jquery实现弹出div,始终显示在屏幕正中间的简单实例
- jQuery弹出层始终垂直居中,相对于屏幕,相对于当前窗口
- jQuery弹出层始终垂直居中相对于屏幕或当前窗口
- jquery实现弹出div,始终显示在屏幕正中间的简单实例
- jquery层居中,点击小图查看大图,弹出层居中代码,顶部层固定不动,滚动条滚动情况
- jquery实现弹出div,始终显示在屏幕正中间的简单实例
- 弹出框始终保持居中(包括有滚动条和窗体缩放时)
- JQuery 弹出层,始终显示在屏幕正中间
- 弹出框居中显示没有滚动条-页面也可以滚动
- 始终在屏幕中间弹出窗口