Autor Zpráva
lemra01
Profil
Zdravím.
Mohl by prosím někdo ve volné chvíli předělat tento script z jquery do normálního javascriptu?
Je to jediný kód který na stránce využívám, pro "vytažení" schovaného boxíku schovaného na levé straně webu, a nechci kvůli toho nechat zbytečně načítat celou knihovnu.
Dík moc

$(document).ready(function($) {
    $('.open-close').click(function() {
        if ($(this).parent().css('left') == '-148px') {
            $(this).parent().animate({
                "left": "0"
            }, 600);
        } else {
            $(this).parent().animate({
                "left": "-148px"
            }, 400);
        }
    });
});
Str4wberry
Profil
Zobrazování a skrývání je jeden řádek kódu.

Animace by šla udělat pomocí časovačů nebo jen pro některé prohlížeče pomocí CSS.
preca1
Profil
Můžeš taky zkusit použít nějakou menší knihovnu/utilitku.
honzaik
Profil
zkusil sem si poprvé vytvořit něco takového a funguje to :D
zde je živá ukázka + kod http://jsbin.com/uborup/1/edit (to css je tam automaticky nagenerované)
budu vděčný za každý tip jak by to šlo šikovnějc a doufám že to pomůže tady lemře :D
--------------------
ještě jsem si všiml že jsem tam nezabudoval to this a parent() a taky tu toggle logiku ale ta se dá vyřešit podobnou podmínkou jako je tady v "zadání" ale myslím že to nejtěžší jsem pomohl, když ne tak se omlouvám ale aspon jsem se něco přiučil :)
Chamurappi
Profil
Reaguji na honzaika:
if(typeof processed === "undefined")
Proč ne if(!processed)?

parseInt(div.style.marginLeft.replace("px", ""))
Funkci parseInt nevadí jednotky.

if(div.style.marginLeft === "")
Funkci parsetInt nevadí ani prázdný řetězec. Edit: Pardon, napsal jsem nesmysl, spletl jsem si to s funkcí Number.
Ale mně trochu vadí, že vůbec zkoušíš z marginLeftu číst. Připadá mi to ošklivé.

Na počítači, který nebude stíhat, bude ta tvá animace trvat velmi dlouho. Já bych na to šel jinak.
Edit: odkaz opraven.
honzaik
Profil
Chamurappi:
díky za rady. akorát to že parseInt nevadí prázdný řetězec s tím nesouhlasím, když dám do chrome/ff konzole "parseInt(div.style.marginLeft)" tak to napíše NaN a to tomu když přičtu nějaké čislo tak to očekávaně nefunguje.
ještě by mě zajímalo proč to bude pomalejší, tu otázku jsem si pokládal když sem uvažoval jestli dělat rekurzi nebo setInterval - je mezitím nějaký výkonostní rozdíl? nebo to zpomaluje něco jiného.
-----
už to asi vidím, nemá to nic společného se způsobem provedení (rekurze nebo setInterval) ale s tím že v té tvojí funkci jsou "reálná" časová data že? nevím jak bych to popsal ale asi tomu rozumí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: