2010-07-08 20 views
9

böyle, bazı bölümlerde; cycle plugin kullanıyorum için otomatik yükseklik:jQuery Cycle eklentisi - kaplarda

<div class="sections"> 
    <div class="Section"> <img /> text </div> 
    <div class="Section"> <img /> text </div> 
    <div class="Section"> <img /> text </div> 
</div> 

tüm .section div'ler içeriklerine göre, değişken yüksekliğe sahip. Kapsayıcı div'unu (bölümler) en büyük çocuk yüksekliğine yeniden boyutlandırmamak için döngüyü nasıl yapabilirim? Bunun yerine, kapsayıcının her animasyonda geçerli alt uzunluğa yeniden boyutlandırılmasını istiyorum.

+0

mevcut CSS kodu nedir döngüsü 1 içindir? – Marko

+0

.sections/.section için hiç bir css yok. Herhangi bir CSS eklemem gerekir mi? Yukarıdaki html, sayfa kenar çubuğunda bulunur. Aşağıda diğer içerikler eklenebilir, bu yüzden otomatik yükseklikli kapsayıcıya ihtiyacım var – Alex

cevap

21

Tamam, ben olayın 'sonra' üzerinde bir işlev çengel bunu başardı

$('.cycle-list').cycle({ 
    containerResize: 0, 
    before: function(currSlideElement, nextSlideElement, options, forwardFlag) { 
     var container = $(this).parent(); 
     container.css('height', Math.max(container.height(), $(nextSlideElement).height())); 
    }, 
    after: function(currSlideElement, nextSlideElement, options, forwardFlag) { 
     $(this).parent().css('height', $(this).height()); 
    } 
    }); 

Öğelerim de farklı yüksekliklere sahipti. Önceden, konteynerin 2 kaydın büyüklüğü için yeterince büyük olduğundan emin olur. Sonra, sadece bir sonraki slayda yeniden boyutlandırır. Bu şekilde, konteyneriniz çok küçük olduğu için fazla akmaz.

not: bu

+1

Bu harika, ancak satır içi içeriği dinamik olarak ekledikten sonra yüksekliği yeniden hesaplamak için nasıl döngü alabilirim? – Florian

1

ben o farklı biraz yaptık:

function onAfter(curr, next, opts, fwd) { 
    var $ht = $(this).height(); 

    //set the container's height to that of the current slide 
    $(this).parent().animate({height: $ht}); 
} 

burada bilgi bulundu:

İlgili konular