使用javascript附加符合设置维度的图像
我试图将图像附加到具有指定高度和宽度的元素。图像本身可能大于或小于该高度和宽度,我想调整图像以适应大小,而不是重复或仅显示图像的一部分 Javascript: 我得到了图像的URL以及它的高度和宽度,然后我尝试创建元素并在这里设置它的属性使用javascript附加符合设置维度的图像,javascript,html,css,image,Javascript,Html,Css,Image,我试图将图像附加到具有指定高度和宽度的元素。图像本身可能大于或小于该高度和宽度,我想调整图像以适应大小,而不是重复或仅显示图像的一部分 Javascript: 我得到了图像的URL以及它的高度和宽度,然后我尝试创建元素并在这里设置它的属性 var listingEntry = document.createElement("img"); listingEntry.setAttribute("height", height); listingEntry.setAttr
var listingEntry = document.createElement("img");
listingEntry.setAttribute("height", height);
listingEntry.setAttribute("width", width);
listingEntry.className = "classTitle";
listingEntry.style.backgroundImage = "url(" + imageSourceUrl + ")";
然后,我通过Id从DOM中获取元素并附加它:
var gridArticle = document.getElementById("gridArticle");
gridArticle.appendChild(listingEntry);
还有我的CSS:
article .tile {
display: inline-block;
float: left;
box-sizing: border-box;
font-size: 3em;
font-weight: 700;
padding: 0 6px;
color: #fff;
text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
}
article img {
}
我试过:
article img {
max-height: 100%
max-width: 100%
}
但随后图像全部停止显示。您需要设置图像的来源:
var listingEntry = document.createElement("img");
listingEntry.setAttribute("height", height);
listingEntry.setAttribute("width", width);
listingEntry.className = "classTitle";
listingEntry.style.backgroundImage=“url”(+imageSourceUrl+”)代码>
我将以两种不同的方式来处理这一问题:
1) 创建div并设置背景图像:
var listingEntry = document.createElement("div");
listingEntry.setAttribute("height", height);
listingEntry.setAttribute("width", width);
listingEntry.className = "classTitle";
listingEntry.style.backgroundImage = "url(" + imageSourceUrl + ")";
或2)创建img并设置指向url的src:
var listingEntry = document.createElement("img");
listingEntry.setAttribute("height", height);
listingEntry.setAttribute("width", width);
listingEntry.className = "classTitle";
listingEntry.src = imageSourceUrl;
注:我将采用第二种方法。另外,尽量避免将背景图像设置为img元素,因为该元素的内容往往会掩盖背景。我目前使用的是第1种方式,效果很好。您知道我必须调整哪些属性,以使图像缩放到适合我指定的任何尺寸,从而不会重复图像或仅显示一部分吗?请尝试以下操作:溢出:隐藏;背景尺寸:封面;背景位置:中心;
var listingEntry = document.createElement("img");
listingEntry.setAttribute("height", height);
listingEntry.setAttribute("width", width);
listingEntry.className = "classTitle";
listingEntry.src = imageSourceUrl;