出于某种原因,我想要动画的 DIV 是自上而下的动画......我想将它从向上动画到最终目的地。
DIV 从position: fixed
页面底部开始。
这就是我现在正在做的事情:
var div2Pos = $("#feature-header-wrapper").position();
$("#123456").css('position', 'absolute');
$("#123456").animate({top: div2Pos.top}, 1000);
出于某种原因,我想要动画的 DIV 是自上而下的动画......我想将它从向上动画到最终目的地。
DIV 从position: fixed
页面底部开始。
这就是我现在正在做的事情:
var div2Pos = $("#feature-header-wrapper").position();
$("#123456").css('position', 'absolute');
$("#123456").animate({top: div2Pos.top}, 1000);
我认为这就是你想要的:
演示:http: //jsfiddle.net/SO_AMK/Q6KNk/
jQuery:
var div2Pos = $("#div2").position();
$("#square").css({
position: 'absolute',
top: $("#square").position().top,
left: $("#square").position().left
});
$("#square").animate({
top: div2Pos.top
}, 1000);
HTML:
<div id="square">Lorem Ipsum...</div>
<div id="div2">Lorem Ipsum...</div>
CSS:
#square {
width: 100px;
height: 100px;
background-color: lightBlue;
position: fixed;
bottom: 0;
}
#div2 {
width: 100px;
height: 100px;
background-color: lightGreen;
position: relative;
top: 30px;
}
基本上它获取div2
' 位置然后设置#square
为它的当前位置,但使用绝对而不是固定定位,以便动画发生而不是跳到顶部。
注意:square
如果在相对定位的元素内,这将不起作用!
我也有同样的问题。但我的是在一个猎鸭游戏中,所以动画会触发几次,我想它可能会帮助你知道它只发生在第一次。之后,我正在制作动画的 div 保留我给它的位置并从下往上制作动画。所以如果我必须...我猜我可以添加一个额外的小动画,什么都不做。希望我能找到不那么平庸的东西,但我希望这会有所帮助。
你可以搞砸这样的事情
$("#123456").animate({top: '-=300px'}, 1000);
这将动画到 300px 少,向上移动(我认为这就是你想要的)