Your code:
function resizeImagePreview(){
var imageHolder = document.getElementById("image-holder");
imageHolder.style.width = "25%";
console.log(imageHolder.style.width);
imageHolder.style.height = imageHolder.style.width + "px";
console.log(imageHolder.style.height);
}resizeImagePreview();
In the third line, you assign the value 25% to the attribute width. In the fifth line, you assign the attribute height the value of width concatenated with the string px. whereas the attribute will have the value 25%, given row 3, the value of height will be 25%px, that doesn’t make any sense and the browser probably discards.
Now, if your intention is to get the value in pixels that the width has after being assigned 25%, then you must use the property offsetWidth of the element. It would look something like:
function resizeImagePreview(){
var imageHolder = document.getElementById("image-holder");
imageHolder.style.width = "25%";
console.log(imageHolder.style.width);
imageHolder.style.height = imageHolder.offsetWidth + "px";
console.log(imageHolder.style.height);
}resizeImagePreview();
Take the example:
function resizeImagePreview(){
var imageHolder = document.getElementById("image-holder");
imageHolder.style.width = "25%";
console.log(imageHolder.style.width);
imageHolder.style.height = imageHolder.offsetWidth + "px";
console.log(imageHolder.style.height);
}resizeImagePreview();
#image-holder {
background: blue;
}
<div id="image-holder"></div>
First you assign "25%" to
width, then defines thatheigthwill bewidth + "px", which results in25%px. It doesn’t seem to make sense. What are the values displayed on the console?– Woss