出于某种原因,当页面加载时,我无法为循环中的元素获取准确的高度值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' );
});
});