滚动离开网页顶部后对 div 进行动画处理

发布于 2024-12-17 19:02:47 字数 296 浏览 0 评论 0原文

我目前正在尝试在用户滚动离开页面顶部后,使一个 div 从另一个 div 后面出现。

我希望使用 animate 来做到这一点,以便它滑出。像这样...

http://jsfiddle.net/xaYTt/99/

但我不能弄清楚如何使红色框留在蓝色框后面,直到用户滚动离开页面顶部。

当用户滚动回到页面顶部时,我还需要反转这一点,因此红色框再次滑回蓝色框下方。

有人可以帮我吗?

I'm currently trying to make a div appear from behind another div after the user scrolls away from the top of the page.

I'm hoping to do this using animate so that it slides out. Like this...

http://jsfiddle.net/xaYTt/99/

But I can't figure out how to make the red box stay behind the blue box until the user scrolls away from the top of the page.

I also need to reverse this when the user scrolls back up to the top of the page, so the red box slides back under the blue box again.

Can anyone help me out?

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

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

发布评论

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

评论(4

陈独秀 2024-12-24 19:02:48

这不是最优雅的解决方案,但它仍然有效。

http://jsfiddle.net/37LZ5/

组件:

  • 使用 $(document).scroll 作为触发器来了解滚动时
  • 使用scrollTop()来知道我们滚动了多远(0=顶部)
  • 记住状态以确保动画不会被触发无数次(var远离)
  • 使用.stop()来防止动画中途出现奇怪的行为动画,另一个动画被触发

This is not the most elegant solution, but it works nonetheless.

http://jsfiddle.net/37LZ5/

Components:

  • Use $(document).scroll as a trigger to know when scrolling
  • Use scrollTop() to know how far we're scrolling (0 = top)
  • Remember state to make sure animation doesn't get triggered a zillion times (var away)
  • Use .stop() to prevent weird behaviour when halfway through one animation, another animation gets triggered
零度℉ 2024-12-24 19:02:48

我想您正在寻找这个,看看这个演示

工作演示

代码

$(document).ready(function(){
    //$('#bottom-box').animate({'margin-top': '200px'}, 1500);
    $('body').hover(function(){
        $('#bottom-box').animate({'margin-top': '200px'}, 1500);
    }, function(){
        $('#bottom-box').animate({'margin-top': '50px'}, 1500);
    });
});

I think you are looking for this take a look at this demo

Working demo

Code

$(document).ready(function(){
    //$('#bottom-box').animate({'margin-top': '200px'}, 1500);
    $('body').hover(function(){
        $('#bottom-box').animate({'margin-top': '200px'}, 1500);
    }, function(){
        $('#bottom-box').animate({'margin-top': '50px'}, 1500);
    });
});
策马西风 2024-12-24 19:02:48

如果我对你的问题的理解是正确的,这就是你正在寻找的东西,

因为你说,“用户从页面顶部滚动”,我在页面顶部添加了一个 div 。

var isAlreadyOut=false;
$("#divPageTop").mouseover(function(){
 if( isAlreadyOut==true)
 {
    $('#bottom-box').animate({'margin-top': '60px'}, 1500);
    isAlreadyOut=false;
 }
 else
 {
    $('#bottom-box').animate({'margin-top': '200px'}, 1500);
    isAlreadyOut=true;                      
 } 
});

这是 jsfiddle 版本
http://jsfiddle.net/xaYTt/103/

If my understanding about your question is correct, this is what you are looking for

Since you said, "User scrolls away from the top of the page", I added a div to be at the top of the page.

var isAlreadyOut=false;
$("#divPageTop").mouseover(function(){
 if( isAlreadyOut==true)
 {
    $('#bottom-box').animate({'margin-top': '60px'}, 1500);
    isAlreadyOut=false;
 }
 else
 {
    $('#bottom-box').animate({'margin-top': '200px'}, 1500);
    isAlreadyOut=true;                      
 } 
});

Here is the jsfiddle version
http://jsfiddle.net/xaYTt/103/

吃颗糖壮壮胆 2024-12-24 19:02:48

如果我正确理解你的问题,我用 jsFiddle 做了一些事情,这可能就是你想要的。

基本上,当您将窗口滚动超过蓝色框的距离时,红色框就会产生动画。

不是 100%,只是一个快速模型,看看这是否是您想要的。
(滚动时,单击滚动条箭头以获得更准确的结果)

此处演示:http://jsfiddle .net/peduarte/xaYTt/104/

I did something with jsFiddle that might be what you are after, if I understood your question correctly.

Basically, the red box will animate when you scroll the window more than the distance of the blue box.

Not 100%, just a quick mock up to see if that's what you want.
(When you scroll, click on the scroll bar arrows for more accurate results)

Demo here: http://jsfiddle.net/peduarte/xaYTt/104/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文