DIV弹出层练习(一) ------------------ 用js实现在超链接的下方弹出div层
2010-08-14 21:47
337 查看
实现思想主要是通过函数getAbsolutePos取得超连接的坐标,然后将其纵坐标加15,横坐标不变,以此坐标设置弹出div的top和left的属性,最后将新建的div通过document.body.appendChild加入到页面中,另外注意的是新弹出的div显示到前面是由于设置了其style的zIndex属性,这个很重要。
效果图:
<html> <head> <title>用js实现在超链接中的下方弹出div层</title> <script type="text/javascript"> <!-- //取得组件 function $(id){ return document.getElementById(id); } //id是新层id,coverid是覆盖层的id,contentid是新层弹出内容所对应的id,本例没有覆盖层 function openNewDiv(id,coverid,contentid) { if ($(id)!=null) document.body.removeChild($(id)); if ($(coverid)!=null) document.body.removeChild($(coverid)); var r = getAbsolutePos($('zxc')); // 创建新激活图层 var newDiv = document.createElement("div"); newDiv.id = id; newDiv.style.position = "absolute"; //让新层的zIndex属性要足够大,才会在最上面显示 newDiv.style.zIndex = "9999"; newDiv.style.width = $(contentid).style.width; newDiv.style.height = $(contentid).style.height; //newDiv.style.top = "100px"; //newDiv.style.left = (parseInt(document.body.scrollWidth) - 300) / 2 // + "px"; // 屏幕居中 newDiv.style.top=r.y+15; newDiv.style.left=r.x; newDiv.style.background = "#BBBDBF"; newDiv.style.border = "1px solid #BBBDBF"; newDiv.innerHTML = $(contentid).innerHTML; document.body.appendChild(newDiv); } //移除新层和覆盖层 function removeDiv(id,coverid){ if($(id)!=null) document.body.removeChild($(id)); if($(coverid)!=null) document.body.removeChild($(coverid)); return false; } //取得组件的坐标 function getAbsolutePos(el) { var SL = 0, ST = 0; var is_div = /^div$/i.test(el.tagName); if (is_div && el.scrollLeft) SL = el.scrollLeft; if (is_div && el.scrollTop) ST = el.scrollTop; var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST }; if (el.offsetParent) { var tmp = this.getAbsolutePos(el.offsetParent); r.x += tmp.x; r.y += tmp.y; } return r; } // --></script> </head> <body> <br/><br/><br/><br/><br/><br/><br/><br/><br/> <center><a id="zxc"style="cursor: pointer;text-decoration: underline;" onclick="openNewDiv('a','b','c')">放入购物车</a></center> <div id="c" style="display: none;" mce_style="display: none;"> <div style="border: 2px solid #BBBDBF width : 70; background-color: #BBBDBF"> <p> 你确定要放入购物车吗? </p> <br /> <center> <a style="cursor: pointer; text-decoration: underline;" mce_style="cursor: pointer; text-decoration: underline;" onclick="alert('success!')" ></a>确定</a> <a style="cursor: pointer; text-decoration: underline;" mce_style="cursor: pointer; text-decoration: underline;" onclick="removeDiv('a','b')">取消</a> </center> </div> </div> </body> </html>
效果图:
相关文章推荐
- DIV弹出层练习(三) ------------------ajax+servlet实现遍历js dom节点
- CSS+JS实现点击文字弹出定时自动关闭的DIV层菜单
- JS使用cookie实现DIV提示层每次打开浏览器都能弹出
- JS+CSS实现Div弹出窗口同时背景变暗的方法
- js实现div弹出层的方法
- js实现div弹出层的方法
- JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
- js实现:点击一个按钮,弹出一个div,并向其中传值,修改后,再传出
- js实现div固定在下方
- js点击弹出div层实现可拖曳的弹窗效果
- JS来实现右下角弹出DIV,可最小化关闭
- JS获取div滚动条距离实现弹出标签位置动态移动
- 弹出div的js实现
- 点击一个超链接,弹出固定大小的新窗口(js实现)
- JS+CSS实现Div弹出窗口同时背景变暗的方法
- js+CSS实现弹出居中背景半透明div层的方法
- JS+CSS实现带关闭按钮DIV弹出窗口的方法
- 点击一个超链接,弹出固定大小的新窗口(js实现)
- js实现页面查询弹出div隐藏背景提示进度
- js 弹出DIV层和关闭DIV层