1

これは一種の興味深い質問であり、これが可能かどうか本当に疑問に思っています。コンテンツが絶えず変化する scolllable div があり、スクロールバーが必要な場合とそうでない場合があります。

下にスクロールし始める必要がある場合は、上部の境界線を追加して、周囲のコンテンツからの分離を示したいと思います。

これに対する css または jQuery ソリューションはありますか?

私のhtmlはちょうど

<div class="scrollableDiv">
  <p>Content</p>
</div>

そしてcssは現時点でスクロール可能にします

.scrollableDiv{
  height:42em;
  overflow-x:hidden;
  min-height:42em;
}
4

2 に答える 2

0

iddiv に属性を追加し、スクロールバーがあるかどうかを判断し、ある場合は jQuery を介して css クラスを追加します。

$('#myId').addClass('applyTopBorder');

強調された要件に基づいて更新します。

私が動作する jsfiddleを作成しているときに Patrick が述べたように、スクロール ハンドラーを使用できます。

于 2013-11-08T20:06:44.220 に答える
0

jqueryでは、.scroll()リスナー...

.on( "scroll", handler )...のショートカットです

scroll イベントは、ユーザーが要素内の別の場所にスクロールすると、要素に送信されます。これはウィンドウ オブジェクトに適用されますが、オーバーフロー CSS プロパティが scroll (要素の明示的な高さまたは幅がコンテンツの高さまたは幅よりも小さい場合は auto) に設定されたスクロール可能なフレームおよび要素にも適用されます。

つまり、ユーザーがスクロールすると、スクロールバーのある div に対して発火します。

ただし、注意してください

mousemove...やなどの高頻度のイベントscroll canは 1 秒間に数十回発生します。そのような場合、イベントを慎重に使用することがより重要になります。

イベントハンドル間の計算とメモリが必要になるスクロールダウンについて言及しています。これにより、単純なスクロール ハンドラでパフォーマンスが低下する危険があります。

次のアプローチをお勧めします。

  1. .scrollハンドラー自体で作業を行うのではなく、作業を開始するための触媒として使用してください。
  2. イベントが下向きのスクロールであると判断したら、スクロール ハンドラー自体を削除して、常に起動し続けないようにします。
  3. 代わりに、タイムアウトを設定して、ユーザーがまだ下にスクロールしているかどうかを再確認します。
  4. スクロールが停止した場合は、問題のクラスから CSS を削除し、問題の DOM 要素にスクロール ハンドラを再度追加します。
于 2013-11-08T20:21:41.917 に答える