2016-04-13 4 views
1

emsを使用してレイアウトを作成しました。 jQueryはデフォルトでピクセルを使用します。jQueryのdivの高さから特定のem値を引いたものを

  • 現在、450ピクセルが減算されているem値を挿入します。

フィラメントグループからpluginが見つかりましたが、使用している機能でプラグインを使用する方法がわかりません。私はすべての提案に開放されています!

$(window).scroll(function(){ 
    var distanceFromTop = $(document).scrollTop(); 
    if (distanceFromTop >= $('#header').height() - 450){ 
     $('#call').addClass('fixed'); 
    } else { 
     $('#call').removeClass('fixed'); 
    } 
}); 

私はjsfiddleを準備しましたが、何か助けに感謝します。

+0

あなたはpx' 'に' em'を変換する必要がありますが、ほとんどのポストは、それは不可能だと言います。私は幅1emの隠れたdivを作成することを提案することができます、javascriptで幅(ピクセル)を取得し、そのレートを使用してpxに変換します。 –

答えて

2
  • ヘッダーと同じフォントサイズで、幅1emのhidden divを作成します。
  • 幅を取得var ww = $("#hidden_div").width();
  • emをpxに変換するには、このレートを使用します。 var the_pixels = em_wanted * ww;
  • くらいのピクセルを使用する - $('#header').height() - the_pixels
+0

それはトリックでした! – Scopestyle

0

あなたの最初の記事でリンクされてフィラメントグループからプラグインを使用する:

if (distanceFromTop >= $('#header').height() - $(8).toPx()){ 

これは#header高さから8emのピクセル値を減算します。

+0

クイック返信のためのThanx、私はそれを使ってみましたが、私が使用しているセットアップでは動作しません。 [jsfiddle(2)](https://jsfiddle.net/Scopestyle/utjrkry8/3/)対[jsfiddle(1)](https://jsfiddle.net/Scopestyle/utjrkry8/2/) – Scopestyle

+0

@Scopestyleあなたが必要です[jsfiddle(2)]の '.toPx()'(https://jsfiddle.net/Scopestyle/utjrkry8/3/)には、 '.toEm()'しかありません。 – chris97ong

+0

まだ運がありません。[jsfiddle 3)](https://jsfiddle.net/Scopestyle/utjrkry8/4/) – Scopestyle

関連する問題