jQuery 动画向上

发布于 2024-09-10 16:40:37 字数 335 浏览 2 评论 0原文

我有一个问题,我有一个绝对定位的 div,我想将它设置为向上离开页面的动画(我正在设置一个人跳出屏幕的动画)。

但是,我需要元素位于底部:0,但是当我希望动画完成时,我希望图像具有顶部:-600px。

当我写入时,

$("#jumper").animate({ 
    top: "-600px"
}, 2000, 'easeInBack' );   

它将 top top 设置为 0,然后开始动画。

也许有一种方法可以获取元素的 ypos 并在窗口加载时使用 jQuery.css() 设置顶部?

我应该在这里做什么?

I have an issue where I have a div that is positioned absoutely and I want to animate it off the page upwards (I'm animating a person jumping off the screen).

However, I need the element to be bottom: 0, but when I want the animation to finish I want the image to have top: -600px.

When I write

$("#jumper").animate({ 
    top: "-600px"
}, 2000, 'easeInBack' );   

it sets top top to 0 and then starts the animation.

Perhaps there is a way to get the ypos of the element and set top with jQuery.css() on window load?

What should I do here?

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

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

发布评论

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

评论(2

凉城已无爱 2024-09-17 16:40:37

只为 bottom 属性设置动画怎么样?您可以获取文档的高度,然后添加 600

http://jsfiddle.net/kavY4/

var height = $(document).height();

$("#jumper").animate({ 
    bottom: height + 600
}, 2000, 'easeInBack' ); ​

否则,您会遇到浏览器特定的问题,其中 top 被计算为 auto,并且动画尝试从该位置开始(我猜最终为 0)。

要实现此功能,您必须在制作动画之前获取 #jumper 的顶部位置并手动将 top 属性设置为该值。

var top = $('#jumper').offset().top;

$("#jumper").css({top:top, bottom:'auto'})
.animate({ 
    top: -600
}, 2000, 'easeInBack' ); 

编辑:第二个示例也需要将bottom设置为auto

http://jsfiddle.net/kavY4/1/

How about just animating the bottom property? You could get the height of the document, then add 600 to it.

http://jsfiddle.net/kavY4/

var height = $(document).height();

$("#jumper").animate({ 
    bottom: height + 600
}, 2000, 'easeInBack' ); ​

Otherwise, you run into browser specific issues where the top is calculated to be auto, and the animation tries to start from that position (which ends up being 0, I guess).

To make that work you would have to get the top position of #jumper and set the top property to that value manually before you animate.

var top = $('#jumper').offset().top;

$("#jumper").css({top:top, bottom:'auto'})
.animate({ 
    top: -600
}, 2000, 'easeInBack' ); 

EDIT: The second example required bottom to be set to auto as well.

http://jsfiddle.net/kavY4/1/

怀念你的温柔 2024-09-17 16:40:37

这是您的代码的示例: http://www.jsfiddle.net/fJKah/

看起来按照我的预期工作。也许有其他东西在干扰..

Here is an example with your code : http://www.jsfiddle.net/fJKah/

looks to work as expected to me. maybe something else is interfering ..

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