javascript - 在 JS 中创建 img 时,如何在 JS 中设置它的容器大小?
问题描述
我已经img
在我的 JavaScript 文件中设置了一个标签,以附加到它的包装标签,.wrapper
我希望将.wrapper
的宽度和高度设置为img
在 JS 中创建的内部的宽度和高度,但这不会发生我不知道为什么,我知道我可以在 CSS 中给出这些尺寸,但我的目标是使用 JS 并通过读取img
创建的尺寸来动态地做到这一点。
有人可以帮我吗?
function main() {
let imgWrapper = document.getElementsByClassName("wrapper").item(0) ;
let image = document.createElement("img") ;
image.src = "https://i.stack.imgur.com/XFRNl.png" ;
imgWrapper.appendChild(image) ;
imgWrapper.style.width = image.style.width ;
imgWrapper.style.height = image.style.height ;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
* {
margin: 0;
padding: 0;
}
.container{
height: auto;
/*background-color: #121212;*/
display: flex;
justify-content: center;
align-items: center;
}
.wrapper{
background-color: blueviolet;
position: relative;
}
.wrapper img{
position: absolute;
left: 0;
top: 0;
}
</style>
</head>
<body onload="main()">
<div class="container">
<div class="wrapper">
</div>
</div>
</body>
</html>
解决方案
你不能像那样提取图像的宽度和高度。您可以使用naturalWidth
andnaturalHeight
属性来获取照片的宽度和高度,而不是 CSS 样式。您也可能认为这些值是整数,因此您必须添加 px 或您需要的任何大小。
尝试运行此代码,它对我有用:
function main() {
let imgWrapper = document.getElementsByClassName("wrapper")[0];
let image = document.createElement("img") ;
image.src = "https://i.stack.imgur.com/XFRNl.png" ;
imgWrapper.style.width = image.naturalWidth + "px";
imgWrapper.style.height = image.naturalHeight + "px";
imgWrapper.appendChild(image) ;
}
推荐阅读
- mule-studio - Anypoint MQ 连接器 - 消费者和订阅者之间的区别
- css - 如何显示用省略号缩短的居中多行文本?
- elixir - 如何连接 Elixir 中地图属性的列表?
- java - 如何在 VS Code 中调试 Maven 项目?
- scala - 为什么这个函数不是尾递归的?
- stm32 - 如何在没有 STLINK 的情况下刷机
- android - Kotlin:如何在 viewModel 中观察一次 liveData?使用 ObserveForever() 和 removeObserver()
- entity-framework - EF Core:无法翻译 LINQ 表达式 - Net Core 3.1
- azure - 如何检索允许用户从 AzureAD Graph API 访问的应用程序/服务主体?
- swift - 居中 UIStackView 不居中视图