gpt4 book ai didi

html - 如何为 CSS img 封面设置 anchor

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:53 25 4
gpt4 key购买 nike

我想要 CSS 图像覆盖的行为,它填充容器元素但不改变图像的比例;任何不适合容器元素视口(viewport)的内容都会超出容器并被隐藏。

但是,它在 CSS 中的工作方式(从我到目前为止的使用方式来看)是将它定位在图像的中心。

我想说的是“将封面 anchor 设置为图像的 x = 150 和 y = 375”之类的东西。想知道如何做到这一点。这样,我就可以在图像上选择一个点并将其作为封面的中心点。

最佳答案

您需要为背景图像使用 background-position 或为具有 objec-fit 的图像使用 object-position

您需要通过将坐标除以图像尺寸并乘以 100% 来计算出正确的值

background-position: calc(131 / 200 * 100%) calc(66 / 200 * 100%);
/* ^^^ ^^^ ^^ ^^^
||| ||| || |||
||| ||| || image height
||| ||| y coordinate
||| image width
x coordinate
*/

点击按钮,你会触发动画,这表明焦点在这些图像中的鸟身上

document.addEventListener('click', e => {
if (e.target.nodeName.toLowerCase() == 'button') {
document.getElementById(e.target.dataset.id).classList.toggle('animate')
}
})
.container {
display: inline-block;
background-image: url(https://picsum.photos/id/990/200/200);
background-size: cover;
background-position: calc(131 / 200 * 100%) calc(66 / 200 * 100%);
transition: all 1s ease-in-out;
}

img {
-o-object-fit: cover;
object-fit: cover;
-o-object-position: calc(131 / 200 * 100%) calc(66 / 200 * 100%);
object-position: calc(131 / 200 * 100%) calc(66 / 200 * 100%);
transition: all 1s ease-in-out;
}

.animate[data-property=width] {
width: 5px !important;
}
.animate[data-property=height] {
height: 5px !important;
}
<span id="container-1" data-property="width" class="container" style="width:200px; height:100px"></span>
<span id="container-2" data-property="height" class="container" style="width:100px; height:200px"></span>

<img id="image-1" data-property="width" src="https://picsum.photos/id/990/200/200" alt="" style="width:200px; height:100px">
<img id="image-2" data-property="height" src="https://picsum.photos/id/990/200/200" alt="" style="width:100px; height:200px">
<br>
<button data-id="container-1">Animate</button>
<button data-id="container-2">Animate</button>
<button data-id="image-1">Animate</button>
<button data-id="image-2">Animate</button>

关于html - 如何为 CSS img 封面设置 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56424201/

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