2012-01-18 11 views
0

スムーズな垂直スクロールでページを作成しました。ユーザーがマウスやタッチパッドを使用してページをスクロールすることができないように、彼らがそうするとき、全体のアイデアはちょっと止まります。スムーズな垂直スクロール - ユーザースクロールをブロックする

あなたは私のウェブページ上のスクロールを見ることができます。 enter link description here

これまでのところ、私はスクロールバーを隠してしまっていました。 あなたは私が求めていることを言うことができると思います、あなたは手動でスクロールを "ブロック"できますか?

ありがとうございました。

答えて

0

あなたのやり方はうまくいきます。私はあなたが他のイベント(キーを押す、ボタンのクリックなど..)でできるように、スクロールイベントをキャンセルすることはできないと思うdo notはオーバーレイをhiddenに設定することは、すべてのスクロール。イベントはバックグラウンドでも行われません。

次のコードは、マウスホイールのスクロールをブロックします。とにかくスクロールするためにマウスホイールを使用することができないので、これは私にとって重要ではありませんが、タッチパッドでのスクロールをブロックすることがあります。

ただ、彼らはいくつかのソリューションですが、私が見つけた何もありません...あなたのjs含まれるファイルのいずれかに

window.onmousewheel = document.onmousewheel = function(event){ 
    if (event.preventDefault) event.preventDefault(); 
    event.returnValue = false; 
} 

は、ここでの例です...

http://jsfiddle.net/johncmolyneux/aSw2g/

+0

リンクをクリックするのではなく、突然タッチパッドをスクロールすると迷惑になるだけです。ユーザーが実際にリンクをクリックしてスクロールしなければならない場合は、いいかもしれません。 –

+0

さて、私はノートパソコンではなくデスクトップにいるので、私はこの問題を経験していません。スクロールホイール、カーソルキー、ページの上/下がすべて無効になっています。 – Archer

+0

あなたはタブレットを意味しますか? – Archer

0

これを追加完璧。最も単純には、次のとおりです。

  • (あなたの体の上に、あなたは身体とhtmlに100%に高さと幅を設定する必要がある場合は、プラスマージンなし/パディングボーダー)隠さにCSSプロパティ「オーバーフロー」を設定していません。

  • イベントをスクロールするためにリスナーを追加し、event.prevendDefault()を使用してこれらのイベントを防ぐこともできます。

しかし、彼らは常にmousescrollせずにページ(およびブロック)を「スクロール」することができ、望ましくない影響は、次のとおりです。

  • 最初の選択である:あなたのレイアウトがここに破ります。それを試すには、上から選択して下に行くと、ページがスクロールします(クロム付き)。テキストとドラッグ&ドロップがなくてもスクロールバーがないためにユーザーが失われてしまった場合、これは起こりそうにありません。
  • 秒はscrollIntoView()です。 JavaScriptを使用して呼び出すこともできます。ブラウザが自動的に行うこともあります(アンカー、入力フォーカス、「リロード時のスクロールメモリ」)。これはほとんどのリスクがありますが、これらのコントロールはほとんどありません。

最後に、私が見つけた一つの「悪い」ソリューションは、定期的に0に要素のscrollTopスプライトプロパティを強制することです。しかし、おそらくあなたはそこに着くとCSS body { overflow: hidden; height: 100% }は十分であろうがありません。

関連する問題