2013-04-23 81 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); 
});