2013-04-23 76 views
1

你们有没有想法让这个(http://hvlmnns.de/middle/)更流畅?我的系统上有 它有点困难。使滚动动画不停止但平滑

也会很高兴有这样的ios afterscroll效果。

这里是代码

$(document).ready(function(){ 
    var wx=$(window).width(),wy=$(window).height(),dx=$(document).width(),dy=$(document).height(); 
$('html,body').width(dx).height(dy).stop().animate({scrollTop:(dy-wy)/2,scrollLeft:((dx-wx)/2)},0); 
$(document).mousemove(function(e){ 
    var x=(dx-wx)*((e.pageX-$(window).scrollLeft())/wx); 
    var y=(dy-wy)*((e.pageY-$(window).scrollTop())/wy); 
    $('body').scrollLeft(x).scrollTop(y); 

}); 
}); 

IM不知道这个动画和出队()的东西,但我认为这将是最终的解决办法,但我怎么说,不知道到平滑滚动动画不一直停下来。

+1

得到一个更快的CPU – Pinch 2013-04-23 19:44:44

+0

尝试编写自己的动画使用requestAnimationFrame。更改mousemove上的变量,在requestAnimationFrame循环中使用它们。 – 2013-04-23 19:45:55

+0

搞笑:)它doesent取决于它的图形处理器,因为我用小数点移动像素 – ceed 2013-04-23 19:46:08

回答

0

有点想通了 http://hvlmnns.de/middle/

不流畅的事情,而不是最好的,但这个有做这项工作

$(document).ready(function() { 
    $('body').css({ 
     position: 'relative', 
     margin: 0, 
     padding: 0, 
     overflow: 'hidden', 
     width: '100%', 
     height: '100%' 
    }) 
    var wx = $(window).width(), 
     wy = $(window).height(), 
     dx = $(document).width(), 
     dy = $(document).height(); 
    $('body').width(dx).height(dy).scrollTop((dy - wy)/2).scrollLeft((dx - wx)/2); 
    var x = 0, 
     y = 0; 
    $(document).mousemove(function (e) { 
     x = (dx - wx) * ((e.pageX - $(window).scrollLeft())/wx); 
     y = (dy - wy) * ((e.pageY - $(window).scrollTop())/wy); 
    }); 
    var obj = $('body'); 
    var xp = 0, 
     yp = 0; 
    $('body').scrollTop((dy - wy)/2).scrollLeft((dx - wx)/2); 
    var loop = setInterval(function() { 
     xp += (x - xp)/60; 
      yp += (y - yp)/60; 
     obj.scrollTop(yp).scrollLeft(xp); 
    }, 1); 
});