日期:2014-05-16 浏览次数:20464 次
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>测试</title> <style type="text/css"> *{ margin:0; padding:0;} body{ background:#e1e1e1;} .f{position: fixed; top: 100px; left: 195px; z-index: 15; width:200px; height:200px; background:#fff; border:5px solid #ffba00} .f1{ position:absolute; z-index: 16; width:200px; height:200px; background:#fff; border:5px solid #000} </style> </head> <body> <div id="floatDiv" class="f"> 我叫floatDiv <br /> <input type="button" id="btn" value="创建一个浮层把我遮住" /> </div> <div style="width:2000px; height:4000px;"></div> <script type="text/javascript"> window.onload = function () { document.getElementById('btn').onclick = function () { var fdiv = document.getElementById('floatDiv'), posXY = getOffset(fdiv), div = document.createElement('div'), divID = 'div_' + Math.floor(Math.random() * 100 - 1); div.id = divID; div.className = 'f1'; div.style.top = posXY.y + 'px'; div.style.left = posXY.x + 'px'; div.innerHTML = '拉拉滚动条,我盖住了floatDiv浮层了?'; document.body.appendChild(div); document.body.onscroll = function () { div.style.top = getOffset(fdiv).y + 'px'; div.style.left = getOffset(fdiv).x + 'px'; }; }; }; function getScroll() { return { sLeft: document["documentElement"].scrollLeft + document["body"].scrollLeft, sTop: document["documentElement"].scrollTop + document["body"].scrollTop }; }; function getOffset(a) { var b = a.offsetLeft, top = a.offsetTop, current = a.offsetParent; while (current != null) { b += current.offsetLeft; top += current.offsetTop; current = current.offsetParent; } return { x: b, y: top }; }; </script> </body> </html>
window.onscroll = function () { div.style.top = getOffset(fdiv).y + 'px'; div.style.left = getOffset(fdiv).x + 'px'; }; function getOffset(a) { var b = a.offsetLeft, top = a.offsetTop, current = a.offsetParent,scroll=getScroll(); while (current != null) { b += current.offsetLeft; top += current.offsetTop; current = current.offsetParent; } return { x: b+scroll.sLeft, y: top +scroll.sTop}; };