2014-10-19 87 views
0

嗨我可以更改和切换滚动div属性,但是当我使用动画,它不会工作,但奇怪的方式。如何在滚动上动画div?

以下工作:

$(document).scroll(function() { 
$("#register").css({left: $(this).scrollLeft() > 1348? "-140px":"0px"}); 
}); 

但是,这是行不通的:

$(document).scroll(function() { 
$("#register").animate({left: $(this).scrollLeft() > 1348? "-140px":"0px"}); 
}); 

我想股利时,我比滚动多1348走开,如果滚动小于1348,div应该再次出现。

简单的CSS工程,但动画不起作用。

+2

对于每一个注册的滚动事件,CSS都会应用对眼睛不可见的更改,也就是说,如果document.scrollLeft <1348,它始终会在0px左侧重新绘制该元素。Animate会在每个滚动条上执行**动画**蜱。你做了什么来防止这种情况发生? – 2014-10-19 14:57:07

回答

2

我建议使用skrollr.js

https://github.com/Prinzhorn/skrollr

典型使用简单:

<div data-0="background-color:rgb(0,0,255);" data-500="background-color:rgb(255,0,0);">WOOOT</div> 

其中数据-number表示当前的滚动位置。

动画可以用css transit来完成。

+0

该插件是否增加了对水平滚动的支持? – 2014-10-19 15:05:51

+0

@ RokoC.Buljan是的,当然,我推荐它导致css的性能比jquery动画更好。 – ProllyGeek 2014-10-19 15:06:15

+0

其实我很惊讶FF的结果如何顺利! – 2014-10-19 15:08:45