gpt4 book ai didi

jquery - 我如何重新创建滚动时淡入淡出的固定背景设计?

转载 作者:行者123 更新时间:2023-11-28 06:18:24 27 4
gpt4 key购买 nike

有问题的设计是:http://hthworldwide.net/

我专门尝试重新创建 landing/hero 元素,该元素在滚动时淡化不透明度以显示背景中的固定图像。

我已经有点接近了,但我似乎无法确定这件事。问题是,如果不为透明字母提供白色背景,我无法让白色滤镜延伸到整个屏幕。理想情况下,您应该能够通过文本看到背景图像,如示例中所示。

这是我目前拥有的:http://codepen.io/rsprice/pen/reVazo

html:

<div class="background"></div>
<div class="opacity-layer"></div>
<div class="text"></div>
<div class="other"></div>

CSS:

html,
body {
height: 100%;
margin: 0;
padding: 0;
}

.background {
width: 3000px;
height: 1000px;
background-position: 0px -300px;
background-size: 130%;
box-sizing: border-box;
z-index: -1;
position: fixed;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
margin: 0;
padding: 0;
color: white;
background: url('https://images.unsplash.com/photo-1454496522488-7a8e488e8606?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&s=a9504411622da8e65df977606f82479c');
}

.opacity-layer {
transform: rotateZ(360deg);
-webkit-perspective: 1000;
box-sizing: border-box;
position: relative;
width: 2000px;
min-height: 100%;
background-size: cover;
background-position: center top;
overflow: hidden;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
margin: 0;
padding: 0;
}

.text {
height: 300px;
width: 100%;
background-position: center;
background: url('http://hthworldwide.net/sites/all/themes/hthworldwide/style/images/home-intro.png') no-repeat;
background-color: transparent;
padding: 0;
margin: 0;
}

.text img {
margin: 0 auto;
}

.other {
height: 2000px;
}

jQuery:

$(window).scroll(function(){
$(".opacity-layer").css("opacity", 1 - $(window).scrollTop() / 250);
});

最佳答案

如果您检查源代码,它不仅是用单个 div 完成的,而且是用表格完成的。

看起来像这样:

+--+--------------------+--+
| | | |
+--+--------------------+--+
| | TRANSPARENT TEXT | |
+--+--------------------+--+
| | | |
+--+--------------------+--+

代码是这样的(简化):

<div>
<table>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td id="centerCell"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<table>
</div>

该表中的所有单元格都有白色背景,但中间的单元格(包含带有透明文本的白色图像)。此外,中心单元格是唯一设置了宽度的单元格,因此其他单元格将占据表格/窗口的其余部分。然后,当页面滚动时,您不会更改图像层的不透明度,而是更改包含整个表格的 div 的不透明度。

这几乎就是您在 codepen 中拥有它的方式(不在问题的代码中),您只需要稍微更改代码以适应它:

$(window).scroll(function(){
$(".container table").css("opacity", .95 - $(window).scrollTop() / 250);
});
html,
body {
height: 100%;
margin: 0;
padding: 0;
background: url('https://images.unsplash.com/photo-1454496522488-7a8e488e8606?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&s=a9504411622da8e65df977606f82479c');
}

.container {
width: 100%;
background-position: 0px -300px;
background-size: 130%;
box-sizing: border-box;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
margin: 0;
padding: 0;
color: white;
background:url(http://hthworldwide.net/sites/all/themes/hthworldwide/style/images/background-home-hk2.jpg);
}

#text {
height: 300px;
width: 980px;
background-position: center;
background: url('http://hthworldwide.net/sites/all/themes/hthworldwide/style/images/home-intro.png') no-repeat;
background-color: transparent;
padding: 0;
margin: 0;
}

table {
width: 100%;
height: 100%;
border:0;
border-collapse:collapse;

}

td {
opacity: .95;
height:100px;
background-color:white;
}

#footer { height:1000px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="container">
<table border="0">
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td id="text"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>

<div id="footer"></div>

关于jquery - 我如何重新创建滚动时淡入淡出的固定背景设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35757378/

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