gpt4 book ai didi

javascript - 我怎样才能让我的脚本在 div 中居中 img

转载 作者:行者123 更新时间:2023-12-02 05:07:05 25 4
gpt4 key购买 nike

我在这里根据我发现并拼凑起来的点点滴滴编造了一个小脚本,但我需要一点帮助来为它添加一个额外的功能,

首先 - 这就是它目前正在为我做的事情:

  • 它调整图像大小并裁剪/信箱以完全填充 div这是一个 % 高度和一个 % 宽度——无论何时何地它都会这样做无论窗口调整大小
  • 它在调整窗口大小时保持无缝工作
  • 图像 100% 填充 div 覆盖的区域 - 从左到右从上到下。
  • 图像没有被压扁或拉伸(stretch)——只是被裁剪了或溢出。
  • 图像尽可能小,所以无论调整大小 -你仍然可以看到它的侧面或顶部和底部图片。
  • 似乎在 IE9、Fire Fox、Oprea、Chrome 和 Safari 上都可以超过 XP 和 7

所有这些对我来说都很重要,请不要告诉我我只需要:

<img style="width : 100%;"> 

这远不止于此。解释起来不太容易,但检查演示并拖动窗口的一 Angular ,这将值得 1000 字...!

现在,我想补充的是:

就是这样,我希望信箱位于图像的中心。

当 div 是非常高的肖像或非常平坦的风景时,我只是获取图像的顶部或左侧。

我希望原始图像的中心位于调整后的 div 的中心。

我尝试了一些东西,但还是一片空白。我确定脚本可以在样式中加入负号 top: 或 left: 但如果我在 div 中得到太多 div,IE 似乎不喜欢它,或者我做错了什么?

问题是我真的不知道如何制作这些东西,我只是偷点东西然后把它们拼在一起......

最后 the demo

和脚本:

<html>
<head>
<title>test</title>


<style>

#imgarea {
position:absolute;
right:0px;
height:75%;
width:70%;
top:25%;
}

</style>


<script type="text/javascript">

function resizeImage()
{
var window_height = document.body.clientHeight
var window_width = document.body.clientWidth
var image_width = document.images[0].width
var image_height = document.images[0].height
var area_width = window_width * 0.7
var area_height = window_height * 0.75
var height_ratio = image_height / area_height
var width_ratio = image_width / area_width


if (height_ratio > width_ratio)
{
document.images[0].style.width = "100%"
document.images[0].style.height = "auto"

}
else
{
document.images[0].style.width = "auto"
document.images[0].style.height = "100%"

}
}
</script>

</head>

<body onresize="resizeImage()">
<div id="imgarea">
<img onload="resizeImage()" src="f/a.jpg">
</div>
</body>
</html>

非常感谢。

最佳答案

我不确定这是否是您要查找的内容,但让我们试试这个:*更新:所见即所得目前无法处理评论,对于困惑的代码片段,我们深表歉意。

1.相对定位div#imgarea。然后您可以将它 float 到右侧,以复制您的 right:0px 声明。不要忘记 overflow hidden ,以确保图像的“信箱”部分保持隐藏。

#imgarea {
position: relative;
width: 70%;
height: 75%;
float: right;
overflow: hidden;
top: 25%;
};
  1. 一些用户代理会向 body 元素添加填充和边距,从而防止图像容器一直向右滑动。重置这些,以消除容器和浏览器窗口边缘之间的间隙。

    正文{ margin :0; 填充:0;

  2. 至于图像本身,绝对定位。

    图片{ position:absolute;

  3. 最后是 javascript。要使图像居中,您需要计算此 width/height=auto 总和,然后分别重置 left/top 属性。您的 if 功能需要稍微调整一下;保持变量不变:

if (height_ratio > width_ratio) {
var newWidth, newHeight, newTop;
newWidth = area_width;
newHeight = image_height/width_ratio;
newTop = -(newHeight-area_height)/2;
document.images[0].style.width = newWidth;
document.images[0].style.height = newHeight;
document.images[0].style.top = newTop;
document.images[0].style.left = 0;
}else{
var newWidth, newHeight, newLeft;
newHeight = area_height;
newWidth = image_width/height_ratio;
newLeft = -(width-area_width)/2;
document.images[0].style.width = newWidth;
document.images[0].style.height = newHeight;
document.images[0].style.top = 0;
document.images[0].style.left = newLeft;
}

我希望,如果这不能完全解决问题,它至少可以让您朝着正确的方向前进。祝你好运。

关于javascript - 我怎样才能让我的脚本在 div 中居中 img,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791730/

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