javascript - 在事先不知道的情况下设置 div 背景图像的高度和宽度

标签 javascript jquery html css asynchronous

使用 jQuery:

每当有人向 div 添加背景图像时,都需要提前知道背景图像的宽度和高度。

例如

$("#id-of-some-div").css(
{
   backgroundImage: 'url(' + backgroundImageUrl + ')',
   height: 200,
   width: 450,
   position: 'absolute',
   top: 20,
   left: 20
});

我可以通过使用如下代码简单地获取图像的大小吗:

我已经测试了以下内容,但它不起作用,是因为我无法在 $.load 函数内使用 return 语句吗? -我猜 return 语句需要始终同步,对吧?

例如

var bgImageUrl = "/*insert image url*/";

var backgroundImageHeightAndWidth = function(backgroundImageUrl)
{
   var backgroundImageSize = [];
   var backgroundImage = new Image();
   backgroundImage.src = backgroundImageUrl;
   backgroundImage.id = "background-image-id";
   $("#background-image-id").load(function ()
   {
      backgroundImageSize.push($("#background-image-id").height());
      backgroundImageSize.push($("#background-image-id").width());
      return backgroundImageSize;   
   });
};
var backgroundImageHeightAndWidthArray = backgroundImageHeightAndWidth();
var backgroundImageHeight = backgroundImageHeightAndWidthArray[0];
var backgroundImageWidth = backgroundImageHeightAndWidthArray[1];

$("#id-of-some-div").css(
{
   backgroundImage: 'url(' + backgroundImageUrl + ')',
   height: backgroundImageHeight,
   width: backgroundImageWidth,
   position: 'absolute',
   top: 20,
   left: 20
});

最佳答案

var bg = "/*insert image url*/";

var bgimg = new Image();
bgimg.onload = function() {
    var elem = document.getElementById('id_of_element');
    elem.style.backgroundImage = 'url(' + bg + ')';
    elem.style.height          = this.height + 'px';
    elem.style.width           = this.width + 'px';
    elem.style.position        = 'absolute',
    elem.style.top             = '20px';
    elem.style.left            = '20px';
});
bgimg.src = bg;

关于javascript - 在事先不知道的情况下设置 div 背景图像的高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16503446/

相关文章:

javascript - 转换对象或数组值的最佳方法

javascript - 如何跟踪 javascript html 页面的键?

javascript - jQuery 生成短的唯一编号

javascript - HTML5 是否支持任何类型的多边形 mask ?

javascript - ngswitch 和 ngif 可以一起使用吗?

javascript - 在移动设备上使用 google chrome 滚动时出现白框

php - 循环上传indexedDB数据到PHP

jquery-ui 可拖动 : change clone helper's css margin correctly

jquery - 使用 jquery,我可以获得特定元素的 X 和 Y 偏移量吗?

html - Wordpress Yeloni 退出弹出式订阅按钮出现宽度不正确