何らかの理由で、ページの読み込み時にループ内の要素の正確な高さの値を取得するのに問題がありますが、でまったく同じ関数each()
を試してみると、正常に機能します。私が何を意味するのか分かりますか?説明の高さを取得し、それを使用して初期位置を決定することになっています。height()
mouseleave
div
これは、高さを設定する前に画像を読み込む必要があることと関係があるのではないかと思ったので、load()
それ以降まで遅らせる試みでした。高さはそれがない場合よりも大きくなるように見えますが、それでも実際の高さよりは小さくなります。何か案は?
jQuery(document).ready(function() {
var total = jQuery('.portfolio-item-holder figure').length;
var numLoaded = 0;
jQuery('.portfolio-item-holder img').one('load', function() {
numLoaded++;
if (numLoaded == total) {
jQuery('.portfolio-item-holder figure').each(function(e) {
var desc = jQuery(this).find('.description').outerHeight(true);
console.log(desc);
jQuery(this).find('figcaption').animate( { 'bottom' : -1 * desc }, 400, 'easeInOutQuart' );
});
}
}).each(function(){
if(this.complete) jQuery(this).trigger('load');
});
jQuery('.portfolio-item-holder figure').bind('mouseenter', function(e) {
var title = jQuery(e.currentTarget).find('h3').position();
jQuery(e.currentTarget).find('figcaption').animate( { 'bottom' : '0', 'queue' : false }, 400, 'easeInOutQuart' );
}).mouseleave(function(e) {
var desc = jQuery(e.currentTarget).find('.description').outerHeight(true);
jQuery(e.currentTarget).find('figcaption').animate( { 'bottom' : -1 * desc, 'queue' : false }, 400, 'easeInOutQuart' );
});
});