jQuery 滚动问题

发布于 2024-12-03 03:04:21 字数 701 浏览 0 评论 0原文

每个人! 我试图在用户滚动经过另一个 div 时显示一个 div,并在用户到达后一个 div 的开头时再次隐藏它。 假设我们有两个 ID 为 #1 和 #2 的 div。现在,当用户滚动到 #1 的开头时,将显示 div#2。当用户再次返回#1 时,div#2 被隐藏。我怎样才能实现这个目标?

我正在使用这个:

jQuery(window).scroll(function(){
        y = jQuery(window).scrollTop();
        if(y>0){
            jQuery("#2").slideDown();
        } 
        if(y==0){
            jQuery("#2").slideUp();
        }
    });

它非常适合在窗口上滚动。但这不起作用:

jQuery(window).scroll(function(){
        y = jQuery("#1").scrollTop();
        if(y>0){
            jQuery("#2").slideDown();
        } 
        if(y==0){
            jQuery("#2").slideUp();
        }
    });

我做错了吗?非常感谢帮助。

everyone!
I am trying to show a div when user scrolls past another div and hide it again when user reaches the beginning of the latter div.
Let's say, we have two divs with IDs #1 and #2. Now, when the user scrolls to the beginning of #1, div#2 is shown. When, again, user comes back to #1, div#2 is hidden. How can I achieve this?

I was using this:

jQuery(window).scroll(function(){
        y = jQuery(window).scrollTop();
        if(y>0){
            jQuery("#2").slideDown();
        } 
        if(y==0){
            jQuery("#2").slideUp();
        }
    });

which worked perfectly for scrolling on window. But this didn't work:

jQuery(window).scroll(function(){
        y = jQuery("#1").scrollTop();
        if(y>0){
            jQuery("#2").slideDown();
        } 
        if(y==0){
            jQuery("#2").slideUp();
        }
    });

Am I doing it wrong? Help much appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼眸里的快感 2024-12-10 03:04:21

想想scrollTop 对于div #1 来说是什么。你说,如果 y > 0 。除非 div1 本身是可滚动的,否则它将始终为零。您真正想要的是窗口是否位于div1下方。因此我们使用

//top of window is at
jQuery(window).scrollTop();

//top of div1 is at (relative to window)
jQuery('#1').offset().top;

//your code should look like this instead
jQuery(window).scroll(function(){
    y = jQuery(window).scrollTop();
    if(y>jQuery('#1'.offset().top)){
        jQuery("#2").slideDown();
    } 
    else{
        jQuery("#2").slideUp();
    }
});

Think about what scrollTop is to div #1. You say, if y > 0. Unless div1 itself is scrollable, it will always be zero. What you really want is whether the window is below div1. So for that we use

//top of window is at
jQuery(window).scrollTop();

//top of div1 is at (relative to window)
jQuery('#1').offset().top;

//your code should look like this instead
jQuery(window).scroll(function(){
    y = jQuery(window).scrollTop();
    if(y>jQuery('#1'.offset().top)){
        jQuery("#2").slideDown();
    } 
    else{
        jQuery("#2").slideUp();
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文