私のページの右側には、スポンサーのリストがあります。
私のアクティブなページ領域 (左側) の高さは、毎回含まれるストーリーに応じて、ページごとに異なります。
リストの高さをライブ ページの高さと一致させたいので、メイン スポンサーは常に表示し、残りのスポンサーについては非表示にして、毎回できる限り正確に表示することにしました。
私のマークアップは次のようになります。
<div id="xorigoi">
<a class="basic"><img src="/views/images/adjustable/sideXorigoi/1.png"></a>
<a class="basic"><img src="/views/images/adjustable/sideXorigoi/2.png"></a>
<a class="basic"><img src="/views/images/adjustable/sideXorigoi/3.png"></a>
<a class="rest"><img src="/views/images/adjustable/sideXorigoi/4.png"></a>
<a class="rest"><img src="/views/images/adjustable/sideXorigoi/5.png"></a>
<a class="rest"><img src="/views/images/adjustable/sideXorigoi/6.png"></a>
<a class="rest"><img src="/views/images/adjustable/sideXorigoi/7.png"></a>
<a class="rest"><img src="/views/images/adjustable/sideXorigoi/8.png"></a>
</div>
すべての画像は、各スポンサーのサイトへのリンクです。すべての画像には独自の高さがあります。
クラスを持つ要素は、.rest
を使用して隠されていますdisplay: none
新しい画像を追加するとリストがページより長くなるかどうかを計算しようとしていますが、要素が非表示になっているため、offsetHeight = 0.
私に何ができる?
これまでの私のjavascript/jqueryコードは次のようになります:
$(
function(){
var containerHeight = $('#mainPageContainer')[0].offsetHeight; // total height of page
var xorigoi = $('#mainRightSide .rest'); // select the sponsors
var newHeight = 1062; // this is the right side height I am already using
$.each( xorigoi , function( index ){
if( newHeight + heightOfNewElement > containerHeight ){
return false; // break each
}
xorigoi.eq(index).css('display','block'); // display the sponsor
newHeight = newHeight + heightOfNewElement;
})
}
)
要するに、上記の関数で heightOfNewElement を取得するにはどうすればよいですか?