javascript - 如何添加一个div作为另一个div的背景?

标签 javascript jquery html css dom

我的目标是为 div 动态生成背景图像。

我有一个函数:

  • 在 Canvas 上绘制图像;
  • 获取图片的数据URL;
  • 创建一个以图片为背景的bgDiv
  • bgDiv 添加到给定的 div 元素。

第三点和第四点的代码如下:

var bgDiv = document.createElement('div');
$(bgDiv).css({
    position: 'absolute',
    left: '0px',
    top: '0px',
    width: '100%',
    height: '100%',
    background: 'url(' + url + ')',
});
$(div).prepend(bgDiv);

问题是:bgDiv 绘制在 div 的子元素前面。我发现这是因为 position: absolute 属性,它是在 bgDiv 上设置的,而在我的例子中,普通 child 没有 position设置。

如何让 bgDiv 元素绘制在所有子元素的底部,无论它们是什么?


免责声明:我知道我可以设置 divbackground-image 属性,但这不足以满足我的目的。


我正在最近的 Firefox 中对此进行测试,我需要非常通用的解决方案。

最佳答案

编辑:如果您实际使用 $(div)作为您的选择器,这是一个问题。使用内容<div>的 ID 或类。

编辑 2: 如果您多次执行此操作(使用不同的背景图像),我会制作 bgDiv一个类,然后动态分配他们的位置。它将为您节省一些 JS。

bgDiv 必须“低于”其余的 div 内容,所以给它一个较低的 z-index 比内容;但是,这可能会导致它落在另一个元素之下。在这种情况下,将 div 的内容设置为更高的 z-index(并将 bgDiv 的 z-index 保留为默认值 auto)。

.bgDiv {
    position: 'absolute';
    z-index:-1;
    /* left: '0px'; Set in JS */
    /* top: '0px';  Set in JS */
    width: '100%';
    height: '100%';
    /* background: 'url(' + url + ')'; Set in JS */
}

关于javascript - 如何添加一个div作为另一个div的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17903335/

相关文章:

javascript - codeigniter 获取 ajax post 文件

javascript - 如何使用 jQuery 从类中选择一个元素?

jquery - 网站崩溃(在)Firefox

jquery - Bootstrap 3 - 使用 jQuery 从动态加载的 li 中删除类 ="disabled"

html - 如何用div或类似的方式实现cellpadding?

css - 设置DIV显示:block on A:hover Trigger (using only CSS)

javascript - 如何自定义字段类型验证的默认浏览器错误消息?

javascript - 在 catch block 内调用抛出函数是否安全?

javascript - 阻止下拉菜单重定向到主页

javascript - 如何创建一个 JS 脚本以应用于一页上的多个 Bootstrap 模态