在滚动上更改margin-top(animate)

时间:2013-10-10 15:09:57

标签: javascript jquery css scroll

感谢用户Rex,我现在使用以下代码通过动画效果更改滚动边距。

$(document).scroll(function () {
$("#content").animate({margin: "0px 0px 0px 0px"}, 3000);
});

http://jsfiddle.net/Vinay199129/qSe4e/10/

现在我希望在向上滚动时边距恢复到原始状态时产生相同的效果,我尝试使用以下脚本检测向上或向下滚动,但它不起作用:{{3 } (如果滚动检测脚本有效,警报消息可以帮我看看)

希望有人可以帮助我

SOLUTION:

http://jsfiddle.net/qSe4e/14

1 个答案:

答案 0 :(得分:0)

修改

这个答案指的是这个jsfiddle:http://jsfiddle.net/qSe4e/14

结束编辑。

在jsfiddle中,您正在为窗口的滚动事件注册一个处理程序,该事件表示“当窗口滚动时,注册文档滚动事件的处理程序”,这会搞乱一切。所以你的代码看起来像这样:

$(document).scroll(function () {
  $("#three").animate({margin: "0px 0px 0px 0px"}, 3000);
});

真的应该是这样:

$("#three").animate({margin: "0px 0px 0px 0px"}, 3000);

基本上只需删除文档滚动包装。

然后,还有第二个问题,即jQuery会自动为您排队这些动画,因此当您滚动时它们会被延迟。你会得到一个更好的结果:

$("#three").animate({margin: "0px 0px 0px 0px"}, {queue: false, duration: 3000});

在你的小提琴中做出这些改变,看看你得到了什么。