gpt4 book ai didi

javascript - CSS 透视舷窗

转载 作者:太空狗 更新时间:2023-10-29 16:09:26 25 4
gpt4 key购买 nike

我正在尝试使用 CSS 创建一个“舷窗”。当我说舷窗时,我的意思是让屏幕的一部分透明,这样您就可以看到舷窗后面的任何东西,仅此而已。

通过将 body 的背景颜色设置为与前景色相同,然后使用具有圆形渐变的舷窗图像,我能够获得我想要的效果,中间为白色,边缘为黑色因为页面上的所有内容都是相同的颜色。这不是我想要的,因为我想在屏幕后面使用颜色或任何东西。

我想到了这个:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test See Through Mouse</title>
<script type="text/javascript" src="jquery-1.4.1.js"></script>
<style type="text/css">
* { margin: 0; padding: 0; }
html, body { height: 100%; background-color: green; }
#cover { height: 100%; width: 100%; top: 0; position: fixed; background: url(porthole.png) no-repeat; }
</style>
</head>
<body>
Hi, I am behind the scenes content. Hi, I am behind the scenes content. Hi, I am behind the scenes content.
<!-- repeated enough times to fill the screen with text -->

<div id="cover"></div>
<script type="text/javascript">
$('#cover').live('mousemove', function(e) {
<!-- the image is 3000px by 3000px and I want the center of the visible part where the mouse is -->
$('#cover').css('background-position', (e.pageX - 1500) + 'px ' + (e.pageY - 1500) + 'px');
});
</script>
</body>
</html>

其中舷窗图像是一个巨大的 PNG 图像(在每个方向上都是我屏幕大小的数倍),中间有一个小圆圈(大约 200 像素 x 200 像素),表示不可见。这确实给出了我想要的效果,但主要问题是我不知道用户的屏幕尺寸,但我也不想使用对用户来说太大的图像,因为四处移动它会明显变得不稳定随着图像尺寸的增长。

有没有办法让我只需要提供一个与实际舷窗图形大小相同的舷窗图像,而使用其他方法来遮盖屏幕的其余部分?我愿意只使用 HTML(5 也可以)、CSS 和 javascript。

最佳答案

为什么不使用 250x250 的舷窗图像,然后用相同颜色的 div 围绕它?它们都可以是移动的父级 div 的子级。

这样一来,您的图片就不必很大,而且您可以自动调整到任何屏幕尺寸。父 div 的宽度/高度为 200%,或者如果你想要更花哨,你可以简单地让高度/宽度为 100%,并在 JS 中使用一些花哨的数学来在端口移动时动态调整 div 的大小。

================
| div |
================
|div| port |div|
================
| div |
================

关于javascript - CSS 透视舷窗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239409/

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