私は必死に実用的な解決策を見つけようとしているという難しい問題を抱えています。
Aarticle#post
と aaside#sidebar
が左右に並んでいます - かなり単純です。my の中にarticle#post
は ah1
と aがありdiv.post-entry
ます。
div.post-entry
外側のコンテナに対する の相対的なオフセットをどうにかして判断できるのだろうかsection#content
。これを行う理由は、フローティング サイドバーをmargin-top
「div.post-entry」と同じ高さに配置できるようにするためです。
これが私の現在のhtml構造のモデルです:
<section id="content">
<article id="post">
<h1>Title of the post</h1>
<div class="post-entry">
<p>Something</p>
</div>
</article>
<aside id="sidebar>
Something
</aside>
</section>
div.post-entry
繰り返しますが、上からどれだけ離れているかのピクセル値を取得するための解決策を見つけたいと思いますsection#content
。
私が抱えている主な問題は、仕事をしているようにさえ見えないことですpost-entry.offsetTop
。これは親でdiv.post-entry
あるため、 に対する相対的なオフセットを取得する必要があります。article.post
それは実際に私にとってもうまくいくはずです。
var articleOffset = $('.post-entry').offsetTop;
console.log($('.post-entry')); //found and exists
console.log(articleOffset); undefined
これが私にとってもうまくいかない理由はありますか?ここで値が未定義になるのはなぜですかoffsetTop
。<h1>
オフセットする少なくとも「30px」のパディングを持つビッグがありますdiv.post-entry
。
そのことについて何か考えはありますか?それを行う方法に関する他のクールなソリューションはありますか?aside#sidebar
同じ高さで開始したいだけですがdiv.post-entry
、マークアップを変更したくありません。