【发布时间】:2023-01-30 14:18:27
【问题描述】:
我有一张背景图片(野餐场景),我复制了上面的一个甜甜圈,将其放在原来的甜甜圈上,并只使该区域可点击。它必须保持在原位,以便任何用户无论显示器大小或窗口大小如何,都将在该位置看到甜甜圈,而不是在不同分辨率的不同位置。
我使用甜甜圈的百分比来尝试使其响应并与背景一起移动和调整大小。当您调整窗口大小时,野餐和甜甜圈会很好地调整大小,但甜甜圈也会四处移动,它不会留在原地。
我只希望单独的甜甜圈是可点击的,而不是它后面的原始甜甜圈,这样用户就会明白他们必须点击特定的东西。
我想也许可以使用某种覆盖解决方案,但没有办法在图像中制作一个“洞”,只能制作一个透明区域。
我有几个其他场景也有完全相同的问题,但背景是一个 gif,另一个是视频,所以即使覆盖可以解决它,我也必须为帧做大量的编辑帧gif,然后获取视频的视频编辑软件。
这是问题的最小示例和重现:
body{
background-size: cover;
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
background-image: url("https://www.bettycrocker.com/-/media/GMI/Core-Sites/BC/Images/BC/content/menus-holidays-parties/parties-and-get-togethers/modern-picnic-ideas/Modern-Picnics.jpg");
}
#donut {
width:10%;
margin-left:50%;
margin-top:40.5%;
color:#fff;
-moz-transition: all 0.2s ease-in;
-o-transition: all 0.2s ease-in;
-webkit-transition: all 0.2s ease-in;
transition: all 0.2s ease-in;
}
#donut:hover {
width:30%;
}
<!doctype html>
<html>
<head>
<link href="css/styles.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.0/animate.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div id="movie">
<div class="scene" id="picnic">
<img class="clickable" id="donut" src="https://i.postimg.cc/7h3kFgX8/donut.png"/>
</div>
</div>
</body>
</html>
我还应该补充一点,我复制甜甜圈以将其放回原处的另一个原因是因为我想在悬停时为其设置动画(正如您在测试时看到的那样),以便用户看到它是可交互的。
【问题讨论】:
-
请编辑问题并使用 sn-p 工具
<>加载您的 html 和 css,包括图像的有效链接。 -
这只能通过保持图像的纵横比来实现。您可能需要 `background-size: contains`。
标签: javascript html css css-position