gpt4 book ai didi

javascript - 图像没有完全加载直到悬停

转载 作者:行者123 更新时间:2023-12-03 07:04:53 24 4
gpt4 key购买 nike

在我的 React 网站上,我有一个垂直列表,列出了我过去的元素的屏幕截图,当页面首次加载图像加载时,但在用户将鼠标悬停在它们上方之前,它们只是一小部分。 screenshot

一旦将鼠标悬停在图像上,图像就会扩展到完整尺寸,然后就可以正常工作了。我希望防止用户将鼠标悬停在它们上面以使其正确加载。
该列表是从数组映射而来的

items: [
{
image: "./images/spokanepowerstroke.jpg",
title: "Spokane Power Stroke",
link: "/powerstroke",
},
...
]
<Col md="auto">
{this.state.items.map(({ title, image, link }) => (
<motion.div className="thumbnail" variants={thumbnailVariants}>
{" "}
<motion.div
key={title}
className="frame"
whileHover="hover"
variants={frameVariants}
transition={transition}
>
<p className="projectstitle">{title}</p>
<Link to={link}>
<motion.img
src={image}
alt={image}
variants={imageVariants}
transition={transition}
/>
</Link>
</motion.div>
</motion.div>
))}
</Col>

悬停和过渡效果由成帧器运动控制。

const transition = { duration: 0.5, ease: [0.43, 0.13, 0.23, 0.96] };

const thumbnailVariants = {
initial: { scale: 0.9, opacity: 0 },
enter: { scale: 1, opacity: 1, transition },
exit: {
scale: 0.5,
opacity: 0,
transition: { duration: 1.5, ...transition },
},
};

const frameVariants = {
hover: { scale: 0.95 },
};

const imageVariants = {
hover: { scale: 1.1 },
};
const changepage = {
in: {
opacity: 1,
},
out: {
opacity: 0,
},
};
const pagetransition = {
duration: 1.5,
};

我查看了我的代码,但没有发现图像只能部分加载的原因。该网站可在此处查看 Website包含所有代码的 Github 存储库在这里 Github(元素页面)
提前感谢您的专业知识。

最佳答案

在您的 App.css 代码中,将此更改为:.thumbnail img { 宽度:46vw;高度:100%; }

height:auto;

% 高度通常会拉伸(stretch)/扭曲图像,如果你想保持纵横比使用 auto

也可能在代码中设置 img 元素的宽度和高度可能有助于防止尺寸问题,因为现在浏览器不知道图像实际有多大,而且它是通过 React JS 加载的,而不是在 HTML 中第一次服务它可能无法计算它,直到悬停动画强制重绘。

关于javascript - 图像没有完全加载直到悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64039106/

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