2016-05-16 51 views
1

要素にスクロールする必要がある場合にのみ、要素にクラスを追加しようとしています。要素にスクロールが必要な場合にのみクラスを追加します。

この要素は画面のサイズに応じているため、画面サイズを小さくする必要があります。そのような場合にのみ、要素に異なるスタイルを追加したいと思います。コンテンツがスクロールせずに収まるときではありません。

私はこれを行う方法がわかりませんが、どこかにjs/jqueryソリューションがあると確信しています!指定された要素の

+0

いくつかのコードがありますか? –

+0

要素にスクロールバーがあるかどうかを検出するだけですか? – WonderGrub

+0

なぜCSSのメディアクエリを使用しないのですか?CSSのメディアクエリは、こうした種類のものに最適です –

答えて

1

のは、あなたがこれを行うことができ、ID "のMyID" と言わせて:

if ($('#MyId')[0].scrollHeight > $('#MyId').innerHeight()) 
{ 
    $('#MyId').addClass('myClass'); 
} 

説明:

  • scrollHeight

これはの高さでありますオーバーフローのために表示されない要素を含む要素のコンテンツ。

  • innerHeightは

これは、上部および下部パディングを含む素子コンテンツの実際の高さであり、アカウント横型オーバーフローを考慮。

  • clientHeight同じであるが、アカウント横型オーバーフローになりません

とは対照的です。

+0

'scrollHeight'はjQueryではなくネイティブのjavascript機能です。 –

+0

あなたは正しく[0] – zoubida13

1

何かこれはうまくいくはずです。基本的に、要素の実際の高さが目に見える高さよりも大きいかどうかをチェックします。

if($(element).innerHeight() < $(element)[0].scrollHeight) { 
    $(element).addClass('scrollable-div'); 
} 
+0

を忘れています。要素に埋め込みがある場合、これは機能しません – zoubida13

+0

これは今では私の答えとまったく同じであることを除いて動作します:D – zoubida13

+0

あなたのポイントは?あなたは私の約10秒前にあなたに答えました、そしてあなたはあなたの答えを後で編集しました。加えて、どのように動作するかについての説明はありません。将来の読者だけでなくOPにも価値をもたらすためには、回答がどのように働くのかを常に説明する必要があります。 –

0

.scroll機能を追加するだけで、スクロールしないと機能しません。

$(window).scroll(function() {  
    var scroll = $(window).scrollTop(); 
    if (scroll >= 0) { 
     // do something 
    } 

}); 
関連する問題