Jquery:(10行以下)当body.scrolltop>这个'h2',淡出那个h2,如果不是,淡出它回来
当主体窗口的顶部大于或等于 h2 标签时,淡出 h2,如果窗口顶部回到 h2 上方,则淡出该 h2。
此代码将淡出每个单独的 h2,如下所示你向下滚动它,但是当我向上滚动时,它不会淡入淡出,而且我不确定我做错了什么。我不是最擅长jquery。非常感谢任何帮助。
$(window).scroll(function() {
$('.grid_12').find('h2').each(function () {
if ($(this).offset().top <= $('body').scrollTop()) {
$(this).fadeOut(500)
} else if
($(this).offset().top >= $('body').scrollTop()) {
$(this).prev().fadeIn(500)
}
});
});
When the top of the body window is greater than or equal to the h2 tag, fade the h2 out, if the top of the window goes back up above that h2, fade that h2 back in.
This code will fade out each individual h2 as you pass it scrolling down, but when i scroll back up, it wont fade it back in, and i'm not sure what i'm doing wrong. i'm not the best at jquery. any help is very appreciated.
$(window).scroll(function() {
$('.grid_12').find('h2').each(function () {
if ($(this).offset().top <= $('body').scrollTop()) {
$(this).fadeOut(500)
} else if
($(this).offset().top >= $('body').scrollTop()) {
$(this).prev().fadeIn(500)
}
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个(演示):
注意:
scrollTop
(应该是为了window btw)在循环之外以最小化函数调用。$(this).offset().top
因此每个循环只调用一次。display:none
(将尺寸设置为零),从而导致页面在消失时跳转。else if
,因为它是不必要的。prev()
,因为您应该定位h2
而不是其他任何东西。Try this (demo):
Notes:
scrollTop
(should be for the window btw) outside of the loop to minimize function calls.$(this).offset().top
so it's only called once per loop.display:none
(sets dimensions to zero) and thus causes the page to jump when it disappears.else if
as it is unnecessary.prev()
as you should target theh2
and nothing else.删除
.prev()
。Remove
.prev()
.