我正在用纯 JavaScript 创建一个灯箱。为此,我正在制作一个叠加层。我想将此叠加层添加到正文,但我也想将内容保留在页面上。我当前的代码添加了覆盖 div,但它也删除了正文中的当前内容。 如何添加 div 元素并将内容保留在正文上?
var el = document.getElementById('element'); var body = document.getElementsByTagName('body'); el.innerHTML = '<p><a id="clickme" href="#">Click me</a></p>'; document.getElementById('clickme').onclick = function (e) { e.preventDefault(); document.body.innerHTML = '<div style="position:absolute;width:100%;height:100%;opacity:0.3;z-index:100;background:#000;"></div>'; }
http://jsfiddle.net/adioo7/vmfbA/
利用
document.body.innerHTML += '<div style="position:absolute;width:100%;height:100%;opacity:0.3;z-index:100;background:#000;"></div>';
代替
document.body.innerHTML = '<div style="position:absolute;width:100%;height:100%;opacity:0.3;z-index:100;background:#000;"></div>';
编辑:- 理想情况下,您应该使用body.appendChild方法而不是更改innerHTML
body.appendChild
innerHTML
var elem = document.createElement('div'); elem.style.cssText = 'position:absolute;width:100%;height:100%;opacity:0.3;z-index:100;background:#000'; document.body.appendChild(elem);