Autor Zpráva
shamania
Profil
Ahoj,
Už několikátým dnem se trápím s jedním problémem. Mám Scrollable plugin od jQueryTools a v něm několik různě vysokých položek. Tím jak měním položky, tak potřebuji měnit výšku slideru podle výšky aktuální položky.
// v nastaveni pluginu:
...
 onReload: function(){fixHeightAuto('#' + id);},
 onSeek: function(){fixHeightAuto('#' + id);}
...
 
 var fixHeightAuto = function(rootID,diff){
    var activeHeight = $('div' + rootID + ' .scrollable div.item.active').attr('style','').height();
    if(diff == undefined){        
        activeHeight = activeHeight + 5;
    }else{
        activeHeight = activeHeight + diff;
    }
    $('div' + rootID + ' .scrollable').animate({height: activeHeight}, "slow");
};

Toto funguje krasne v IE a ve FireFoxu. Nicméně v Chrome (Opera také) to funguje jen NĚKDY. Při prvním načtení to veme nějakou divnou výšku a né plnou. Po použití pluginu doprava doleva už to funguje, dokonce i po reloadu stránky, i po refreshi cashe to funguje, ale někdy to prostě blbne.
Obsah položek jsou vetšinou tabulky, které se právě liší v počtu řádků a nebo také plovoucí divy (fotogalerie).
Nenapadá Vás někoho PROČ se tak děje??

Zkoušel jsem to obejít i pomocí znovu zavolání funkce přes setInterval, problém se ale neodstranil jen to není tak časté. A velké časy (okolo sekundy) už nevypadají dobře.

Děkuji za rady.
Chamurappi
Profil
Reaguji na shamaniu:
Nenapadá Vás někoho PROČ se tak děje??
Čtyři dny nikoho nic nenapadlo, zkus dodat víc informací. Třeba odkaz na živou ukázku problému.

Kdyby byly v položkách obrázky s nezadanými rozměry, tipnul bych si, že bude záležet na tom, jestli je už má prohlížeč v keši, nebo jestli je musí teprve načíst (to by jejich velikost byla nejprve malá).
shamania
Profil
Potřeboval jsem to nějak vyřešit, tak jsem použil metodu přes setInterval a nastavil na jednu sekundu. A to pouze při prvním zavolání funkce, aby ta sekunda pořád nezdržovala. A? Funguje to (i na pomalém připojení s čistou keší).
Použití obrázků na to nemělo vliv. Nevím beru to jako "bug". Možná až bude více času, tak se k tomu vrátím.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0