hover时的连续动画(性能)

我创建了一个jQuery函数,通过减少元素的左边距来滚动DIV。 它有效,但速度非常慢。 它立即吃掉了100%的CPU:s

$(".scroll").hover( function () { var scroll_offset = parseInt($('#content').css('margin-left')); sliderInt = self.setInterval(function(){ $content.css({'margin-left':scroll_offset+'px'}); scroll_offset--; },8); }, function () { clearInterval(sliderInt); } ); 

显然我每8ms运行一次这个function,这是很多问题。 我已经缓存了我的选择器,所以我不知道我能做些什么来提高性能。 我只是走错了路吗?

 function play () { $('#ball').animate({left: '+=20'}, 100, 'linear', play); } function pause () { $('#ball').stop(); } $("#bar").hover( play, pause ); 
 #bar { margin-top: 20px; background: #444; height: 20px; } #bar:hover #ball { background: lightgreen; } #ball { position: relative; left: 0; width: 20px; height: 20px; background: red; border-radius: 50%; } 
 

.animate()是一个很好的方法。 例:

 $(".scroll").hover(function(){ $("#content").animate({ marginLeft: "100px", }, 1500 ); });​ 

工作演示

阅读文档以了解如何使用它。