2

基本的に、機能はここにあります。微調整する方法がわからない改良が必要なだけです。この小さなスニペットを作成しました。これは、まさに私が望むことを行いますが、ページ全体をスクロールするのではなく、「ウィンドウ」サイズ。

誰でもこれを使って素晴らしいものにすることができますか? :)

$(document).mousemove(function(e){
        percent = ((e.pageY) * 100) / $(this).height(); 
        $('body,html').scrollTop( percent);         
});
4

2 に答える 2

7

これに似た何か?http://jsfiddle.net/zcVL7/4/

私はJSを少し圧縮しましたが、あなたはそれのほとんどを持っていました:

$(document).mousemove(function(e) {
    var percent = e.clientY / $(window).height();
    $('body, html').scrollTop($(document).height() * percent);
});​
于 2012-08-11T08:41:20.607 に答える
5

マウスのオフセットがページの中央に対してどれだけ離れているかに応じて、デルタが必要になる場合があります: http://jsfiddle.net/BYUdS/2/。そうすれば、スクロールの制限がないように下にスクロールし続けることができます (現在のもの)。

$(document).mousemove(function(e) {
    $("html, body").scrollTop(function(i, v) {
        var h = $(window).height();
        var y = e.clientY - h / 2;
        return v + y * 0.1;
    });
});

よりスムーズに実行されるバージョンは次のとおりです: http://jsfiddle.net/BYUdS/3/

var $elems = $("html, body");
var delta = 0;

$(document).on("mousemove", function(e) {
    var h = $(window).height();
    var y = e.clientY - h / 2;
    delta = y * 0.1;
});

$(window).on("blur mouseleave", function() {
    delta = 0;
});

(function f() {
    if(delta) {
        $elems.scrollTop(function(i, v) {
            return v + delta;
        });
    }
    webkitRequestAnimationFrame(f);
})();
于 2012-08-11T08:41:44.427 に答える