jQuery .load()を介してページにコンテンツを読み込むスクリプトに問題があります。コンテンツは正しくロードされ、コンテンツのアニメーションは(隠されたクラスで行われますが)動作しますが、ロードする前にラッピングコンテナの高さを設定してから、そのコンテナの高さをアニメーションして、異なるコンテンツの高さjQueryを使用しているときの高さの取得に関する問題.load()
実際に何が起こっているのかは、要素の実際の高さではなく、何らかの理由で高さが0に設定されていることです。奇妙なことに、これは最初のクリックでは機能しているようですが、他の部分ではブレークして高さを0に設定します。
以下のコードを参照してください(jsFiddleを作成しますが、.load()その):
HTML
<main id="content" class="content">
<div id="content-inner" class="content-inner">
<!-- Content -->
</div>
</main>
CSS
.content {
transition: .25s height;
}
.content-inner {
position: relative;
top: 0;
opacity: 1;
visibility: visible;
transition: .25s opacity, .25s top;
}
.hidden .content-inner {
top: -30px;
opacity: 0;
visibility: hidden;
transition: .25s opacity, .25s top, 0s visibility .25s;
}
のJavaScript(jQueryの)
var $mainContentOuter = $('#content'),
linkContent = '#content-inner',
$mainContentInner = $(linkContent);
function loadMainContent(link) {
// Assign height as current height to prevent jumping
$mainContentOuter.height($mainContentInner.outerHeight());
// Hide content
$mainContentOuter.addClass('hidden').delay(250).queue(function() {
// Load content
$mainContentOuter.load(link + ' ' + linkContent, function() {
// Animate the height difference when loaded
$mainContentOuter.height($mainContentInner.outerHeight());
});
// Dequeue for delay
$(this).dequeue();
}).delay(250).queue(function() {
// Reveal content and reset height
$mainContentOuter.removeClass('hidden').css('height','');
// Dequeue for delay
$(this).dequeue();
});
}
// Override behavior of navigational links
$('.nav-main > li > a').click(function(e){
var link = $(this).attr('href');
//Pass link
loadMainContent(link);
e.preventDefault();
});
任意の助けを大幅に高く評価されるだろう。事前に
おかげで、 ロブ
私は実際に#content-innerを、読み込まれているページの同等のコンテナに置き換えています。それで、それはまだ存在しますか? – rjhewitt3
男、今は本当に馬鹿だと思う。要素は同じプロパティで存在しますが、技術的には同じ要素ではありません。古いものはその変数を対象にしていましたが、技術的に削除されているので、高さは0、または未定義です。私は一見、コンテンツがロードされた後に変数をリセットすることで問題を解決しました。 '$ mainContentInner = $(linkContent);' – rjhewitt3
愚かではありません。これらのことはいつも起こります。私は、これよりずっと簡単に間違いを解決しようと多くの時間を費やしました。私はあなたの問題を解決してうれしいです。 – Thanasis