gpt4 book ai didi

javascript - Divs 占据整个页面

转载 作者:行者123 更新时间:2023-12-04 10:39:56 26 4
gpt4 key购买 nike

我最近刚接触到 HTML 和 CSS 作为爱好,并想尝试视差滚动。我找到了一个很棒的教程,它准确地描述了我想做的事情,除了一个小问题。当我试图在视差滚动背景的顶部重新定位 Logo 时, Logo 的 div 仍保留在页面顶部,用白色占据整个页面顶部。我无法在全局重置中调整 height: 100% 属性,因为当我这样做时,背景图像会完全消失。如果我尝试调整其他 div 的高度,背景图像又会消失。这是代码:
索引.html:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">


<title>Lumberjack Times | Home</title>
</head>
<body>
<div class="center"><img src="Images/Lumberjack.jpg" height="100" alt="" class="centerFace"></div>

<div class="doNotSize" id="background"></div>

<div class="text"><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p></div>





<script src="parallax.js" type="text/javascript"></script>
</body>
</html>

这是我的 style.css:
* {
margin: 0;
border: 0;

height: 100%;

z-index: 1;
}


#background {
background-image: url("Images/Camping\ Ground.jpg");
background-size: 100%;

background-repeat: no-repeat;
background-attachment: fixed;

background-position: center center - 300;
top: 200;
}

.center {
display:flex;
justify-content: center;
display:absolute;
}

.centerFace {
height: 400px;

display:absolute;
margin-top:60%;

clip-path: circle(200px at center);
}

最后,视差脚本:
window.addEventListener("DOMContentLoaded", scrollLoop, false);


var backgroundImage = document.querySelector("#background");


var xScrollPos;
var yScrollPos;


function scrollLoop(e) {
xScrollPos = window.scrollX;
yScrollPos = window.scrollY;

setTranslate(0, yScrollPos * -0.2, backgroundImage);


requestAnimationFrame(scrollLoop);
}

function setTranslate(xPos, yPos, element) {
element.style.transform = "translate3d(" + xPos + ", " + yPos + "px, 0";
}

所有非常基本的文件,但我一辈子都找不到问题!有谁知道我该如何解决这个问题?

Image of the issue stated, top white box displays over the entire page

关于为什么会发生这种情况,我的主要猜测是因为我声明所有元素的高度都应为网页的 100%,但如果我不这样做,则不会显示背景图像。我很难过,任何帮助将不胜感激!

最佳答案

如果您可以更新您的问题以包含指向您正在使用的教程的链接,那就太好了。它有助于更​​好地理解所需的行为。

此外,您发布的代码可能会更好一些(就 CSS 和 HTML 结构而言),但也许这就是教程的内容......

也就是说,我相信这就是您要实现的目标:

更改您的 .center.centerFace类到这个:

.center {
position: absolute;
height: 100%;
top: 50%;
left: 50%;
transform: translate(-50%, -25%);
}

.centerFace {
height: 400px;
clip-path: circle(200px at center);
}

快速解释

在您的 .center 上类(class), display:absolute;不是有效的 CSS 属性。你可能想要 位置 成为 absolute .此外,您“不能”两次拥有相同的属性。您的 display: flex;覆盖了另一个 display属性。

(通常,您将使用 display 属性来定义该元素的子元素的行为,而不是位置本身。)

工作示例 here .

关于javascript - Divs 占据整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59976563/

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