gpt4 book ai didi

javascript - 为什么 div 宽度/高度在加载后没有改变?

转载 作者:行者123 更新时间:2023-11-28 15:21:07 24 4
gpt4 key购买 nike

我正在尝试创建一个在线图像裁剪器,用户可以在其中上传照片并显示一个可通过按钮更改的框(框架)。裁剪照片并将其发回给用户。

我在 php 中有一个表单 uploader 的基本模板(工作中)。然后它在 div 中显示图像,其上方有另一个透明的 div,带有标记裁剪区域的边框。

divs 的初始值是在页面发送给用户时通过 php 在 css 部分中设置的。我正在尝试调整框架 div 的大小,因为给定的宽度是框架的图像宽度 +2 px(高度相同),它应该只是图像宽度(-2像素)。

这段代码应该可以正常工作,但是当弹出警告时,它们显示框架宽度/高度没有改变原始值,而且看起来好像框架没有改变。

<!DOCTYPE html>
<head>
<style type="text/css">
html, body {
width: 500px;
height: 334px;
background-color: black;
}

.top {
margin-top: 0px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
width: 500px;
height: 334px;
position: absolute;
background-color: transparent;
border-width: 1px;
border-style: solid;
border-color: white;
z-index: 999;
}

.bottom {
top: 0px;
left: 0px;
position absolute;
width: 500px;
height: 334px;
background-color: green;
// background-image: url(uploads/1505002267.jpg);
z-index: 998;
}
</style>

<script type="text/javascript">
function myOnLoad() {
var w = 500;
var h = 334;
var frame = document.getElementsByClassName('top')[0];
w = w - 2;
h = h - 2;
//frame.setAttribute("style", "width: " + w + "px;");
//frame.setAttribute("style", "height: " + h + "px;");
frame.style.width = w + "px;";
frame.style.height = h + "px;";
alert(frame.offsetWidth);
alert(frame.offsetHeight);
}
</script>
<title>Test Website</title>
</head>
<body onload="myOnLoad()">
<div class="wrapper">
<div class="bottom" id="image">
<div class="top" id="frame">
</div>
</div>
</div>
</body>
</html>

我知道我可以更改 php 赋予 css 部分的值,但无论如何我都需要在下一步中更改裁剪比例,所以我需要这种方式来工作。请帮忙,我看这段代码太久了。

最佳答案

去掉引号中的分号。

frame.style.width = w + "px";
frame.style.height = h + "px";

此外,offsetHeightoffsetWidth 也考虑了边框。由于您的边框宽度为 1px,因此它会将图像的高度和宽度都增加 2px,以抵消 2 的减法。

阅读更多关于偏移量的信息 widthheight在 MDN 上。

关于javascript - 为什么 div 宽度/高度在加载后没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46136214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com