gpt4 book ai didi

javascript - 在 div 内滚动时使用 jQuery 添加/删除类

转载 作者:行者123 更新时间:2023-11-28 15:13:41 28 4
gpt4 key购买 nike

我有一个 child <div>其中有 position: fixed;通过添加一类 is-active 来应用当你滚动到它的父元素的顶部时 <div> .

当您滚动到父级末尾之外时,是否可以固定子级在父级末尾的位置?然后当您向上滚动到父项末尾上方时,将“is-active”类重新应用到子项?

本质上,我希望子项的固定位置仅在其父项中处于事件状态。我想实现什么position: sticky;可以在没有 polyfill 开销和缺乏浏览器支持的情况下完成。这可能吗?

这是我目前拥有的:

HTML:

<div class="outer">
<div class="nav">
</div>
</div>
<div class="end">
</div>

CSS:

.outer {
position: relative;
width: 100%;
height: 200rem;
margin: 10rem 0 0;
background: red;
}

.end {
width: 100%;
height: 40rem;
background: green;
}

.nav {
position: absolute;
top: 0;
left: 0;
width: 10rem;
height: 30rem;
background: blue;

&.is-active {
position: fixed;
top: 2rem;
left: 2rem;
}

}

jQuery:

var $nav = $('.nav');
var $outer = $('.outer');

$(function(){
$(window).scroll(function() {
var $scroll = $(window).scrollTop();
var $parentOffset = $outer.offset().top;
var $parentHeight = $outer.height();
var $navHeight = $nav.height();
if($scroll > $parentOffset && $scroll < ($parentHeight - $navHeight)) {
$nav.addClass('is-active');
}
else {
$nav.removeClass('is-active');
});
});

这是 Codepen,还有一个工作示例:https://codepen.io/abbasarezoo/pen/BwXBLv

提前感谢您的帮助!

最佳答案

我刚刚更改了它,现在粘性 header 可以正常工作了 https://codepen.io/anon/pen/OxKPbj

if($scroll > $parentOffset && $scroll ) {
$nav.addClass('is-active');
}

关于javascript - 在 div 内滚动时使用 jQuery 添加/删除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46932716/

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