2016-12-08 6 views
0

2列のレイアウトがあります。左の列は固定され、右の列はスクロールできるようになっています。私は体をスクロールしたくないのでoverflow: hidden;bodyに設定しました。しかし、何とかカーソルを直接移動させることなく、2番目の列をテキストでスクロールすることは可能ですか(それはmousewhellによって全体的にスクロールします)? https://jsfiddle.net/ketysek/4ysm4h0f/マウスを使わずに特定のdivをスクロールすることも可能ですか

+0

左の列にはスクロールが必要なコンテンツがありますか?モバイルサポートはどうですか? – seemly

+0

左の列の内容はスクロールする必要はありません:)移動体では、2つの列はありません(左が上にあります)ので、スクロールすることは有効です。 – user3216673

答えて

0

onwheelイベントを左側の列にバインドし、右側の列をスクロールすることができます。 updated fiddle here.

document.getElementsByClassName('left')[0].onwheel = function(event) { 
    document.getElementsByClassName('right')[0].scrollTop += 10 * event.deltaY; 
} 
+0

うわー、これはまさに私が必要なものです:) – user3216673

0

を確認してください基本的に私はあなたがスムーズにこのことを行うカントと思うが、私は創造的になろうとした場合、あなたがしたいページの本文に「ホイール」イベントを割り当て、テキスト内のアンカーを追加することができますスクロールされ、ホイールイベントを処理する関数の内部でそのアンカーに移動します。

認識ホイール方向にこれを読んで:Javascript - Detecting scroll direction

2

@Fission答えが正解です。

この回答は古いブラウザのサポートです。

if (document.body.addEventListener) { 
    document.body.addEventListener("mousewheel", MouseWheelHandler, false); 
    document.body.addEventListener("DOMMouseScroll", 
            MouseWheelHandler, false); 
} 

else document.body.attachEvent("onmousewheel", MouseWheelHandler); 

function MouseWheelHandler(e) { 
    var right= document.getElementsByClassName("right")[0]; 
    var e = window.event || e; // old IE support 
    right.scrollTop += e.deltaY * 5; 
} 
関連する問題