2014-10-19 83 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