スマホ版でヘッダーをdisplay: fixedで固定して、コンテンツをヘッダー分ずらそうとしたら、height()で上手く高さを取得できなかった。

 

var h_height = $("#sidebar").height(); ← 0px;

ソースを読み込み表示するまでのタイミングが悪いらしい。

また、fixedはブラウザの表示幅を元になるので、さらにタイミングが悪くなるらしい。

ソースがすべて読み込まれ表示したタイミングで高さを測るということにすると良くなった。(少し遅延は発生する。)

 

// loadしたタイミングで高さを取得するようにする
$(window).load(function(){
  var h_height = $("#sidebar").height();
  $("#contents").css("margin-top", h_height);
  $(".anchor").css("padding-top", h_height).css("margin-top", -h_height); // 内部リンク分も
})