gpt4 book ai didi

javascript - 滚动 : change opacity (from 0 to 1 and vv) of div when at a specific position on page

转载 作者:太空宇宙 更新时间:2023-11-04 08:27:16 25 4
gpt4 key购买 nike

在发布这个问题之前,我搜索了可能的答案,但找不到我需要的答案。

就是说:我有一个包含多个 div 的演示页面,每个 div 可以有不同的高度。我坚持了几个小时的方法是执行以下操作:

当 div 的底部在向下滚动时达到特定的页面顶部偏移阈值时,不透明度应更改为 .4 当向上滚动时 div 再次垂直居中,然后将不透明度设置为 1。

期望的结果是 1 个 div 处于事件状态(100% 不透明度),垂直居中,所有其他 div 处于非事件状态,但是当您向上/向下滚动足够多时,事件 div 应该变为非事件状态(不透明度 40%),下一个/之前的 div 应该变为事件状态。

需要注意的是,偏移量应该根据div底部的位置来计算。因为否则滚动时高度较大的 div 可能会变得不活动。从底部位置开始计算应确保整个 div 偏离中心足以变为非事件状态。

检查这个 fiddle : https://jsfiddle.net/4q98yxk2/3/

代码:

    <script
src="https://code.jquery.com/jquery-2.2.4.js"
integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI="
crossorigin="anonymous"></script>

<script type="text/javascript">
$(window).on("load",function() {
$(window).scroll(function() {

$(".fade").each(function() {

console.log($(this).position().top);

});
}).scroll(); //invoke scroll-handler on page-load
});

</script>

</head>
<body>

<div class="content">

<div class="fade">Box 1</div>
<div class="fade">Box 2</div>
<div class="fade biggest">Box 3</div>
<div class="fade">Box 4</div>
<div class="fade blue">Box 5 blue</div>
<div class="fade big">Box 6</div>
<div class="fade">Box 7</div>
<div class="fade">Box 8</div>
<div class="fade big">Box 9</div>
<div class="fade biggest">Box 10</div>
<div class="fade">Box 11</div>
<div class="fade">Box 12</div>

</div>

希望您能提供帮助,因为我对如何实现这一点一无所知。谢谢!

最佳答案

我不太了解 JS,但我想我找到了一些东西。如果有帮助,请检查 fiddle :

https://jsfiddle.net/scorpio777/4q98yxk2/25/

我已经用这个替换了你的 JS:

var fade = $('.fade');
var range = 200;
$(window).on('scroll', function () {
var st = $(this).scrollTop();
fade.each(function () {
var offset = $(this).offset().top;
var height = $(this).outerHeight();
offset = offset + height / 1;
$(this).css({ 'opacity': 1 - (st - offset + range) / range });
});
});

并添加了 CSS:

.content{
margin-top:50px;
}

关于javascript - 滚动 : change opacity (from 0 to 1 and vv) of div when at a specific position on page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45066085/

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