Hirdetés

Új hozzászólás Aktív témák

  • nevemfel
    senior tag

    az semmit sem ér ma már, sajnos azok már lejártak.
    azóta igen sok változott 2004-es a könyv, Windows7, és internet explorer dicsőítése az első jó pár oldal.
    Azóta nem hogy win7, de ie sincs, sőt flash sincs már és sorolhatnám.
    Illetve írtam, hogy amit olvasni kell az nekem nem jó.
    Pont azért tanulok abból amiket írtam.
    Minegyik rátért a példákra, de azt egyik se mondja, hogy a terv honnan jön.
    Ilyen projekt, olyan projekt, néztem vagy 30 teljes projektet, de egyik se mondja az egész honnan indul.
    Mikor szakmát tanultam anno, azzal kezdtük: előkészítés
    Hogyan kell előkészülni. Na ez sehol sincs. Pedig ez az alap után azonnal az első tégla.

    Viszont az easy meg borzasztó nehéz

    Hozz valami konkrét példát ebből, és ha ráérek (vagy valaki más), akkor megmutatom, hogy hogyan lehet egy kicsit komplexebb feladatot részfeladatokra bontani, egészen addig a pontig, amikor a részfeladatok kóddá formálása már triviális.

  • martonx
    veterán

    Jössz itt a téglákkal, meg hogy alapozás, aztán minden csak elavult, rohannál előre eszetlenül, és nyafogsz, hogy nem érted :C

    Akarsz egy alapozót? Tessék: Antikvár könyv - A Világháló lehetőségei - 2001

    Az ott alapozó. Azt kellene elsőként elolvasni. Elejétől a végéig minden egyes oldalt. 520 oldalt egyesével. (Ott ér véget a még hasznos függelék.) És ha elavult, hát akkor elavult, de akkor is azt kellene elolvasni.

    Ő az a típus, aki cselekvés helyett kérdezni, és őrlődni szeret :D
    Mint a Brian életében a lázadók :D

  • coco2
    őstag

    az semmit sem ér ma már, sajnos azok már lejártak.
    azóta igen sok változott 2004-es a könyv, Windows7, és internet explorer dicsőítése az első jó pár oldal.
    Azóta nem hogy win7, de ie sincs, sőt flash sincs már és sorolhatnám.
    Illetve írtam, hogy amit olvasni kell az nekem nem jó.
    Pont azért tanulok abból amiket írtam.
    Minegyik rátért a példákra, de azt egyik se mondja, hogy a terv honnan jön.
    Ilyen projekt, olyan projekt, néztem vagy 30 teljes projektet, de egyik se mondja az egész honnan indul.
    Mikor szakmát tanultam anno, azzal kezdtük: előkészítés
    Hogyan kell előkészülni. Na ez sehol sincs. Pedig ez az alap után azonnal az első tégla.

    Jössz itt a téglákkal, meg hogy alapozás, aztán minden csak elavult, rohannál előre eszetlenül, és nyafogsz, hogy nem érted :C

    Akarsz egy alapozót? Tessék: Antikvár könyv - A Világháló lehetőségei - 2001

    Az ott alapozó. Azt kellene elsőként elolvasni. Elejétől a végéig minden egyes oldalt. 520 oldalt egyesével. (Ott ér véget a még hasznos függelék.) És ha elavult, hát akkor elavult, de akkor is azt kellene elolvasni.

  • cattus
    addikt

    az semmit sem ér ma már, sajnos azok már lejártak.
    azóta igen sok változott 2004-es a könyv, Windows7, és internet explorer dicsőítése az első jó pár oldal.
    Azóta nem hogy win7, de ie sincs, sőt flash sincs már és sorolhatnám.
    Illetve írtam, hogy amit olvasni kell az nekem nem jó.
    Pont azért tanulok abból amiket írtam.
    Minegyik rátért a példákra, de azt egyik se mondja, hogy a terv honnan jön.
    Ilyen projekt, olyan projekt, néztem vagy 30 teljes projektet, de egyik se mondja az egész honnan indul.
    Mikor szakmát tanultam anno, azzal kezdtük: előkészítés
    Hogyan kell előkészülni. Na ez sehol sincs. Pedig ez az alap után azonnal az első tégla.

    Az is lehet, hogy rossz irányból közelíted meg a problémát. Próbáld meg azt, hogy a feladatot elkezded lebontani egyre kisebb részekre, amíg az atomi dolgokat nem kapod (ehhez kell egy változó, amivel xy-t kell csinálni, ahhoz kell egy ciklus, etc.), nyilván időközben sok kereséssel / utánanézéssel, hogy mit hogyan érdemes megoldani.

    Nem tudom milyen háttérrel rendelkezel vagy hogy miért kezdtél neki az egész programozásnak - és ezt most tényleg nem sértésnek szánom -, de az is igaz, hogy nem mindenkinek való a programozás. Érdemes elgondolkodni mit szeretnél valójában és aszerint tovább haladni.

  • martonx
    veterán

    az semmit sem ér ma már, sajnos azok már lejártak.
    azóta igen sok változott 2004-es a könyv, Windows7, és internet explorer dicsőítése az első jó pár oldal.
    Azóta nem hogy win7, de ie sincs, sőt flash sincs már és sorolhatnám.
    Illetve írtam, hogy amit olvasni kell az nekem nem jó.
    Pont azért tanulok abból amiket írtam.
    Minegyik rátért a példákra, de azt egyik se mondja, hogy a terv honnan jön.
    Ilyen projekt, olyan projekt, néztem vagy 30 teljes projektet, de egyik se mondja az egész honnan indul.
    Mikor szakmát tanultam anno, azzal kezdtük: előkészítés
    Hogyan kell előkészülni. Na ez sehol sincs. Pedig ez az alap után azonnal az első tégla.

    Hagyd már ezt az előkészület dolgot. A te szinted én kezdj el kodolgatni, csinálj pár weboldalt, és majd ráérzel. Vagy nem. Ez esetben engedd el a dolgot. ;]

  • lanszelot
    addikt

    Anno linkeltem neked egy könyvet javascript 24 óra alatt - azt végigolvastad?

    az semmit sem ér ma már, sajnos azok már lejártak.
    azóta igen sok változott 2004-es a könyv, Windows7, és internet explorer dicsőítése az első jó pár oldal.
    Azóta nem hogy win7, de ie sincs, sőt flash sincs már és sorolhatnám.
    Illetve írtam, hogy amit olvasni kell az nekem nem jó.
    Pont azért tanulok abból amiket írtam.
    Minegyik rátért a példákra, de azt egyik se mondja, hogy a terv honnan jön.
    Ilyen projekt, olyan projekt, néztem vagy 30 teljes projektet, de egyik se mondja az egész honnan indul.
    Mikor szakmát tanultam anno, azzal kezdtük: előkészítés
    Hogyan kell előkészülni. Na ez sehol sincs. Pedig ez az alap után azonnal az első tégla.

  • coco2
    őstag

    Elször is köszönöm a válaszokat.

    Igen js, fentebb irtam és igen azért ide irtam :)
    W3 az alap, akár a stackoverflow :)
    Nem elakadtam, mert ezt senki se mondja el.
    Vettem udemy-t, magán órát, youtube, grashopper, edabit..stb
    De mindenütt az van, hogy ott ülök, és ezt hogy kellene program nyelven kivitelezni.

    példánál maradva:
    Nincsenek lépések, csak az hogy szomjas vagy.
    Ez csak akkor lehetséges, ha már tudod a lépéseket /nem azt hogyan kell lépni, az ok, a terv nincs meg/ , de azokat honnan tudom meg?
    Mert, ha elmondja valaki akkor: "jaaaa, tényleg"

    Tehát nem az elkésztés a tervezés nem esik le. Valami tervet tuti csináltok , de mivel én az elején vagyok, nekem az apró dolgokhoz is meg kellene csinálni, hogy később nagyobb tervet készthessek.

    Az elakadtam, utána nézek, sem működik, mert fogalmam sincs minek nézzek utána, hisz nincs terv, nincs lépés, csak üres képernyő van.

    pl edabit: very easy ment, uncsi volt, rengeteget megcsináltam, borzasztó egyszerű volt. Viszont az easy meg borzasztó nehéz, az nem ment, ott ültem, fehér képernyő, mert nincs lépés, nincs terv. Azokat tudom, hogy ha ez a lépés, akkor hogy irom le, de mi a lépés arra nem jövök rá.

    Anno linkeltem neked egy könyvet javascript 24 óra alatt - azt végigolvastad?

  • lanszelot
    addikt

    Mivel a JavaScript-topikban tetted fel a kérdést, így feltételezem, a JS érdekel.

    Ajánlani tudom ezt az oldalt, egészen az alapoktól elvisz egy magabiztos alap tudásig, tele példákkal és ellenörző kérdésekkel is:
    https://www.w3schools.com/js/DEFAULT.asp

    Ha elakadsz, szívesen segítünk.

    Amúgy a példádnál maradva:
    Inni szeretnél egy pohár vizet. Ehhez a következő függvényekre lesz első körben szükség (csak a példád miatt magyar nevekkel, és ilyen szerkezetben):
    - poharKeres();
    - csaphozVisz();
    - csapMegenged();
    - csapFolyat();
    - poharEltorol();
    stb.

    Aztán ezeket persze később megírhatod máshogy is, bevezethetsz paramétereket.
    Pl. csinálsz egy függvényt, aminek az a funkciója, hogy valamit keres. Ennek paraméternek átadod, hogy mit keressen (poharat):
    - keres(pohar);

    Ugyanígy azt is, hogy a csaphoz vigyen valamit, pontosabban hogy valahova (csaphoz) vigyen valamit (poharat):
    - visz(csap, pohar);

    Aztán persze utána (illetve nyilván előtte) össze kell szedned, hogy mit csinál a keres() függvény. Lehet, úgy csinálod meg, hogy lesz benne 10 másik függvényhívás 20 változóval.
    Ez már teljesen rajtad áll, hogyan alakítod, mire lesz szükséged benne.

    Kezd kicsiben (első körben a tanulós oldallal), és azt kezdd el bővíteni. Azután pedig határ a csillagos ég. ;)

    Elször is köszönöm a válaszokat.

    Igen js, fentebb irtam és igen azért ide irtam :)
    W3 az alap, akár a stackoverflow :)
    Nem elakadtam, mert ezt senki se mondja el.
    Vettem udemy-t, magán órát, youtube, grashopper, edabit..stb
    De mindenütt az van, hogy ott ülök, és ezt hogy kellene program nyelven kivitelezni.

    példánál maradva:
    Nincsenek lépések, csak az hogy szomjas vagy.
    Ez csak akkor lehetséges, ha már tudod a lépéseket /nem azt hogyan kell lépni, az ok, a terv nincs meg/ , de azokat honnan tudom meg?
    Mert, ha elmondja valaki akkor: "jaaaa, tényleg"

    Tehát nem az elkésztés a tervezés nem esik le. Valami tervet tuti csináltok , de mivel én az elején vagyok, nekem az apró dolgokhoz is meg kellene csinálni, hogy később nagyobb tervet készthessek.

    Az elakadtam, utána nézek, sem működik, mert fogalmam sincs minek nézzek utána, hisz nincs terv, nincs lépés, csak üres képernyő van.

    pl edabit: very easy ment, uncsi volt, rengeteget megcsináltam, borzasztó egyszerű volt. Viszont az easy meg borzasztó nehéz, az nem ment, ott ültem, fehér képernyő, mert nincs lépés, nincs terv. Azokat tudom, hogy ha ez a lépés, akkor hogy irom le, de mi a lépés arra nem jövök rá.

  • Taci
    addikt

    Hello,
    Hogy kell megtervezni egy programot?
    Ez nagyon nem világos számomra.
    Megvan az ötlet mit szeretnék.
    Honnan tudom, hogy kell majd 7 változó, 3 konstans, 4 függvény...stb
    Ez ez ehhez úgy viszonyul, hogy akkor majd ez, ezzel, és ez nem, közben....
    Ezek honnan jönnek?
    Hogy kezdődik?
    Nem tudom érthető-e mit nem értek. :)

    Egy pohár viz pl úgy kezdődik: keresek egy poharat, oda viszem a csaphoz, megengedem a csapot, hagyom folyni kicsit, elöbltem a poharat, megtöltöm.
    Persze értem, hogy ez később már jön magától, de először mindenki megtervezi, ez érdekelne, hogy hogyan kell.

    Mivel a JavaScript-topikban tetted fel a kérdést, így feltételezem, a JS érdekel.

    Ajánlani tudom ezt az oldalt, egészen az alapoktól elvisz egy magabiztos alap tudásig, tele példákkal és ellenörző kérdésekkel is:
    https://www.w3schools.com/js/DEFAULT.asp

    Ha elakadsz, szívesen segítünk.

    Amúgy a példádnál maradva:
    Inni szeretnél egy pohár vizet. Ehhez a következő függvényekre lesz első körben szükség (csak a példád miatt magyar nevekkel, és ilyen szerkezetben):
    - poharKeres();
    - csaphozVisz();
    - csapMegenged();
    - csapFolyat();
    - poharEltorol();
    stb.

    Aztán ezeket persze később megírhatod máshogy is, bevezethetsz paramétereket.
    Pl. csinálsz egy függvényt, aminek az a funkciója, hogy valamit keres. Ennek paraméternek átadod, hogy mit keressen (poharat):
    - keres(pohar);

    Ugyanígy azt is, hogy a csaphoz vigyen valamit, pontosabban hogy valahova (csaphoz) vigyen valamit (poharat):
    - visz(csap, pohar);

    Aztán persze utána (illetve nyilván előtte) össze kell szedned, hogy mit csinál a keres() függvény. Lehet, úgy csinálod meg, hogy lesz benne 10 másik függvényhívás 20 változóval.
    Ez már teljesen rajtad áll, hogyan alakítod, mire lesz szükséged benne.

    Kezd kicsiben (első körben a tanulós oldallal), és azt kezdd el bővíteni. Azután pedig határ a csillagos ég. ;)

  • Mr. Y
    őstag

    Hello,
    Hogy kell megtervezni egy programot?
    Ez nagyon nem világos számomra.
    Megvan az ötlet mit szeretnék.
    Honnan tudom, hogy kell majd 7 változó, 3 konstans, 4 függvény...stb
    Ez ez ehhez úgy viszonyul, hogy akkor majd ez, ezzel, és ez nem, közben....
    Ezek honnan jönnek?
    Hogy kezdődik?
    Nem tudom érthető-e mit nem értek. :)

    Egy pohár viz pl úgy kezdődik: keresek egy poharat, oda viszem a csaphoz, megengedem a csapot, hagyom folyni kicsit, elöbltem a poharat, megtöltöm.
    Persze értem, hogy ez később már jön magától, de először mindenki megtervezi, ez érdekelne, hogy hogyan kell.

    Gyakorlás a kulcs. Emlékszem, annó úgy tanultam ki a C-t, hogy megírtam nulla tudással egy egyszerűnek tűnő játékot. Mikor elakadtam, utána néztem dolgoknak. Kitaláltam, hogy egy adott dolog hogyan működhet és megnéztem, hogy az megvalósítható-e.
    Tervezni egyedül PLC-nél szoktam. A létradiagram ugyanis jól néz ki papíron is.

  • martonx
    veterán

    Hello,
    Hogy kell megtervezni egy programot?
    Ez nagyon nem világos számomra.
    Megvan az ötlet mit szeretnék.
    Honnan tudom, hogy kell majd 7 változó, 3 konstans, 4 függvény...stb
    Ez ez ehhez úgy viszonyul, hogy akkor majd ez, ezzel, és ez nem, közben....
    Ezek honnan jönnek?
    Hogy kezdődik?
    Nem tudom érthető-e mit nem értek. :)

    Egy pohár viz pl úgy kezdődik: keresek egy poharat, oda viszem a csaphoz, megengedem a csapot, hagyom folyni kicsit, elöbltem a poharat, megtöltöm.
    Persze értem, hogy ez később már jön magától, de először mindenki megtervezi, ez érdekelne, hogy hogyan kell.

    "Honnan tudom, hogy kell majd 7 változó, 3 konstans, 4 függvény...stb" - sehonnan, menet közben alakul ki kód architektúrája.

    Kivéve, ha az Evosoftnál dolgozol, mert ott senior szint alatt, mindenki megkapja papíron, hogy mit kell begépelnie :D

  • coco2
    őstag

    Hello,
    Hogy kell megtervezni egy programot?
    Ez nagyon nem világos számomra.
    Megvan az ötlet mit szeretnék.
    Honnan tudom, hogy kell majd 7 változó, 3 konstans, 4 függvény...stb
    Ez ez ehhez úgy viszonyul, hogy akkor majd ez, ezzel, és ez nem, közben....
    Ezek honnan jönnek?
    Hogy kezdődik?
    Nem tudom érthető-e mit nem értek. :)

    Egy pohár viz pl úgy kezdődik: keresek egy poharat, oda viszem a csaphoz, megengedem a csapot, hagyom folyni kicsit, elöbltem a poharat, megtöltöm.
    Persze értem, hogy ez később már jön magától, de először mindenki megtervezi, ez érdekelne, hogy hogyan kell.

    A pokol kapuján dörömbölsz éppen. Egészen biztos vagy benne? :)

    Úgy kezdődik, hogy számodra teljesen értelmetlen példákat fogsz gyakorolni.

    Attól függően, hogy mennyi tehetséged van absztrakt részletek megfigyelésére, korlátos, hogy mit tudsz megtanulni, és milyen sebességgel. Valakinek 1-2 példát megmutat a tankönyv, és megértette. Valaki a 100. után sem érti. Egyszer csak elszakad a cérna, és hagytad a fenébe - az a gyakorlati korlátod.

    Jó szerencsét.

  • lanszelot
    addikt

    Hello,
    Hogy kell megtervezni egy programot?
    Ez nagyon nem világos számomra.
    Megvan az ötlet mit szeretnék.
    Honnan tudom, hogy kell majd 7 változó, 3 konstans, 4 függvény...stb
    Ez ez ehhez úgy viszonyul, hogy akkor majd ez, ezzel, és ez nem, közben....
    Ezek honnan jönnek?
    Hogy kezdődik?
    Nem tudom érthető-e mit nem értek. :)

    Egy pohár viz pl úgy kezdődik: keresek egy poharat, oda viszem a csaphoz, megengedem a csapot, hagyom folyni kicsit, elöbltem a poharat, megtöltöm.
    Persze értem, hogy ez később már jön magától, de először mindenki megtervezi, ez érdekelne, hogy hogyan kell.

  • Taci
    addikt

    Van egy még viccesebb lehetőség, csak az extra kódolás. Z indexben legfelülre kiraksz egy cudar nagy div-et beállított háttér színnel (akár fehér akár fekete). Html-ből csinálod, nem kell hozzá script akasztani a betöltést. Töltés közben bármi is kerül ki nem nagyon fog látszani semmi, mert takarva lesz. Én a magam részéről a fehér színt választanám, mert az az alapértelmezett, míg tölt a böngésző (leszámítva mobil platformon, ahol fekete az alapszín). Onload-on elintézed, amit kell, aztán a takaró div-et átrakod display none-re. És hirtelen oda került a kész eredmény egyben.

    A disy68 és az általad leírt között félúton (vagyis inkább közös halmazban) van a megoldásom. :)

    <body>
      <script>setDarkModeFromLocalStorage();</script>
      <div id="loading">
        <div id="loading-center"></div>
      </div>

    Egy loader/splash screen a logóval. :) És így pont jó, mert a sötét témát erre is alkalmazni tudtam. Szóval így (tűnik) kerek(nek). :)

    Köszönöm!

  • coco2
    őstag

    Az jutott most hirtelen eszembe, hogy alapból beállítom, hogy ne legyen látható a body (display: none;), aztán ha megvan a váltás, akkor újra láthatóvá teszem, és így elkerülhetem a "villódzást".

    Van egy még viccesebb lehetőség, csak az extra kódolás. Z indexben legfelülre kiraksz egy cudar nagy div-et beállított háttér színnel (akár fehér akár fekete). Html-ből csinálod, nem kell hozzá script akasztani a betöltést. Töltés közben bármi is kerül ki nem nagyon fog látszani semmi, mert takarva lesz. Én a magam részéről a fehér színt választanám, mert az az alapértelmezett, míg tölt a böngésző (leszámítva mobil platformon, ahol fekete az alapszín). Onload-on elintézed, amit kell, aztán a takaró div-et átrakod display none-re. És hirtelen oda került a kész eredmény egyben.

  • Rimuru
    veterán

    Igen, köszönöm szépen, pont így sikerült megoldanom, csak közben lejárt a szerkesztési időm. :)

    Köszönöm szépen ismét a gyors segítséget! :)

    Amugy erre fele indulnek el, MDN: prefers-color-scheme.

  • Taci
    addikt

    Ne várd meg a body onload eseményét, mert az akkor lesz ellőve, amikor már minden betöltött, neked csak a body elemre van szükséged.

    <body>
      <script>itt csekkolod a localStorage-ban az értéket és beállítod a class-t</script>
      ....
    </body>

    Igen, köszönöm szépen, pont így sikerült megoldanom, csak közben lejárt a szerkesztési időm. :)

    Köszönöm szépen ismét a gyors segítséget! :)

  • disy68
    aktív tag

    A sötét mód váltásához állítottam most be egy változót local storage-ban, hogy ha már korábban átváltott a felhasználó, akkor az oldal eleve sötét módban induljon.

    Maga a váltás így van megoldva, ez van triggerelve a dark mode ikonra való kattintáskor is:
    document.body.classList.toggle("dark-theme");

    Ezt pedig csak így tudtam megcsinálni, hogy local storage-ból kiolvasva a változó értékét beállítsa a sötét témát:

    <body onload="onLoadBody();">

    function onLoadBody(){
        const DARKMODE = "darkMode";
        const storedDarkModeEnabledState = localStorage.getItem(DARKMODE);

        if (storedDarkModeEnabledState == 1){
            document.body.classList.toggle("dark-theme");
        }
    }

    Viszont így egy pillanatra betöltéskor még az alap, világos téma látszódik, kvázi bevillan, és csak utána tölt be a sötét.

    Hogyan tudnám megoldani, hogy egyből a sötéttel indítson?
    Korábbra már nem tudom tenni a hívást, hiszen ott még nincs body.

    Ne várd meg a body onload eseményét, mert az akkor lesz ellőve, amikor már minden betöltött, neked csak a body elemre van szükséged.

    <body>
      <script>itt csekkolod a localStorage-ban az értéket és beállítod a class-t</script>
      ....
    </body>

  • Taci
    addikt

    A sötét mód váltásához állítottam most be egy változót local storage-ban, hogy ha már korábban átváltott a felhasználó, akkor az oldal eleve sötét módban induljon.

    Maga a váltás így van megoldva, ez van triggerelve a dark mode ikonra való kattintáskor is:
    document.body.classList.toggle("dark-theme");

    Ezt pedig csak így tudtam megcsinálni, hogy local storage-ból kiolvasva a változó értékét beállítsa a sötét témát:

    <body onload="onLoadBody();">

    function onLoadBody(){
        const DARKMODE = "darkMode";
        const storedDarkModeEnabledState = localStorage.getItem(DARKMODE);

        if (storedDarkModeEnabledState == 1){
            document.body.classList.toggle("dark-theme");
        }
    }

    Viszont így egy pillanatra betöltéskor még az alap, világos téma látszódik, kvázi bevillan, és csak utána tölt be a sötét.

    Hogyan tudnám megoldani, hogy egyből a sötéttel indítson?
    Korábbra már nem tudom tenni a hívást, hiszen ott még nincs body.

    Az jutott most hirtelen eszembe, hogy alapból beállítom, hogy ne legyen látható a body (display: none;), aztán ha megvan a váltás, akkor újra láthatóvá teszem, és így elkerülhetem a "villódzást".

  • Taci
    addikt

    A sötét mód váltásához állítottam most be egy változót local storage-ban, hogy ha már korábban átváltott a felhasználó, akkor az oldal eleve sötét módban induljon.

    Maga a váltás így van megoldva, ez van triggerelve a dark mode ikonra való kattintáskor is:
    document.body.classList.toggle("dark-theme");

    Ezt pedig csak így tudtam megcsinálni, hogy local storage-ból kiolvasva a változó értékét beállítsa a sötét témát:

    <body onload="onLoadBody();">

    function onLoadBody(){
        const DARKMODE = "darkMode";
        const storedDarkModeEnabledState = localStorage.getItem(DARKMODE);

        if (storedDarkModeEnabledState == 1){
            document.body.classList.toggle("dark-theme");
        }
    }

    Viszont így egy pillanatra betöltéskor még az alap, világos téma látszódik, kvázi bevillan, és csak utána tölt be a sötét.

    Hogyan tudnám megoldani, hogy egyből a sötéttel indítson?
    Korábbra már nem tudom tenni a hívást, hiszen ott még nincs body.

  • Mr. Y
    őstag

    Írtam elé egy hosszú szöveget, hogy ezt a változatot használtam még a legelején a sötét témás váltáshoz, viszont csúnya volt, ahogy váltásnál "ugrált". (Csak aztán ezt kitöröltem, mert a kérdéshez és válaszhoz irrelevánsnak tűnt végül.) Így végül én is úgy csináltam meg, hogy egy CSS-ben van a két stílus, és úgy váltogatom.
    Csak a Mr. Y által írt kódrészletben két CSS fájl van, ezért írtam válasznak végül ezt. De egyetértek, szebb, gyorsabb, egyszerűbb, ha egy fájlban van a két stílus.

    Köszönöm ezt a megoldást is. Ugyanis ebből látom már, hogy tegnap egyáltalán nem álltam távol a valóságtól :))

  • Taci
    addikt

    Lehet működik, de nem igazán a legjobb megoldás arra, amit a kérdezőnk szeretne. Én is inkább azt mondanám, hogy csináljon a CSS-ben két class-t a két stílusra és azt változtassa, mintsem két fájlt használjon.

    Írtam elé egy hosszú szöveget, hogy ezt a változatot használtam még a legelején a sötét témás váltáshoz, viszont csúnya volt, ahogy váltásnál "ugrált". (Csak aztán ezt kitöröltem, mert a kérdéshez és válaszhoz irrelevánsnak tűnt végül.) Így végül én is úgy csináltam meg, hogy egy CSS-ben van a két stílus, és úgy váltogatom.
    Csak a Mr. Y által írt kódrészletben két CSS fájl van, ezért írtam válasznak végül ezt. De egyetértek, szebb, gyorsabb, egyszerűbb, ha egy fájlban van a két stílus.

  • cattus
    addikt

    Próbáld meg esetleg így:

    <HTML>
    <link href="styles1.css" rel="stylesheet" id="themecss">
    <div id="kiskacsa">Szöveg</div>
    <button onclick="change()">Változz át CSS2-re</button>
    </HTML>

    És hozzá a JS:
    const themecss = document.querySelector("#themecss");
    function change() {
       if (themecss.getAttribute("href") == "styles1.css") {
           themecss.href = "styles2.css";
        } else if (themecss.getAttribute("href") == "styles2.css"){
           themecss.href = "styles1.css";
        }
    }

    Nyugodtan javítsátok, ha így nem pontos. Meg persze lehetne switch-csel is, szebb is úgy talán. De nagyjából így működnie kellene.

    Lehet működik, de nem igazán a legjobb megoldás arra, amit a kérdezőnk szeretne. Én is inkább azt mondanám, hogy csináljon a CSS-ben két class-t a két stílusra és azt változtassa, mintsem két fájlt használjon.

  • Taci
    addikt

    Sziasztok!

    Szeretnék segítséget kérni, mert kezdek belezavarodni. Összeszámolni nem tudom, hány kódot probáltam ma le, eredménytelenül, semmi sem működik.

    Adott a következő szituáció:

    <HTML>
    <link href="styles1.css" rel="stylesheet">
    <link href="styles2.css" rel="stylesheet">
    <div id="kiskacsa">Szöveg</div>
    <button onclick="change()">Változz át CSS2-re</button>
    </HTML>

    CSS1
    #kiskacsa {font-size: 20px; color: black; background-color: red;}

    CSS2
    #kiskacsa {font-size: 30px; color: white; background-color: green;}

    És itt jön a feketeleves. Mi kell a JS file-ba, hogy alapértelmezett CSS1 helyett CSS2 lépjen érvénybe? Annyi mindent kipróbáltam már, de mindhiába.

    Próbáld meg esetleg így:

    <HTML>
    <link href="styles1.css" rel="stylesheet" id="themecss">
    <div id="kiskacsa">Szöveg</div>
    <button onclick="change()">Változz át CSS2-re</button>
    </HTML>

    És hozzá a JS:
    const themecss = document.querySelector("#themecss");
    function change() {
       if (themecss.getAttribute("href") == "styles1.css") {
           themecss.href = "styles2.css";
        } else if (themecss.getAttribute("href") == "styles2.css"){
           themecss.href = "styles1.css";
        }
    }

    Nyugodtan javítsátok, ha így nem pontos. Meg persze lehetne switch-csel is, szebb is úgy talán. De nagyjából így működnie kellene.

  • coco2
    őstag

    Sziasztok!

    Szeretnék segítséget kérni, mert kezdek belezavarodni. Összeszámolni nem tudom, hány kódot probáltam ma le, eredménytelenül, semmi sem működik.

    Adott a következő szituáció:

    <HTML>
    <link href="styles1.css" rel="stylesheet">
    <link href="styles2.css" rel="stylesheet">
    <div id="kiskacsa">Szöveg</div>
    <button onclick="change()">Változz át CSS2-re</button>
    </HTML>

    CSS1
    #kiskacsa {font-size: 20px; color: black; background-color: red;}

    CSS2
    #kiskacsa {font-size: 30px; color: white; background-color: green;}

    És itt jön a feketeleves. Mi kell a JS file-ba, hogy alapértelmezett CSS1 helyett CSS2 lépjen érvénybe? Annyi mindent kipróbáltam már, de mindhiába.

    Class kellene annak a div-nek, és a class-ra írni a css-t, nem az id-ra. Aztán lesz ilyen lehetőség: How can I change an element's class with JavaScript?

  • Mr. Y
    őstag

    Sziasztok!

    Szeretnék segítséget kérni, mert kezdek belezavarodni. Összeszámolni nem tudom, hány kódot probáltam ma le, eredménytelenül, semmi sem működik.

    Adott a következő szituáció:

    <HTML>
    <link href="styles1.css" rel="stylesheet">
    <link href="styles2.css" rel="stylesheet">
    <div id="kiskacsa">Szöveg</div>
    <button onclick="change()">Változz át CSS2-re</button>
    </HTML>

    CSS1
    #kiskacsa {font-size: 20px; color: black; background-color: red;}

    CSS2
    #kiskacsa {font-size: 30px; color: white; background-color: green;}

    És itt jön a feketeleves. Mi kell a JS file-ba, hogy alapértelmezett CSS1 helyett CSS2 lépjen érvénybe? Annyi mindent kipróbáltam már, de mindhiába.

  • martonx
    veterán

    ES5-re nem kell fordítani, alapból úgy írtam. Nincs semmi kliens extra érintve (jquery sincs pld), móricka-egyszerűen építkeztem. Ha behúzzak bármi extrát, gyanítom, az önmagában +kbyte. Most 41 a kbyte számláló vége, és "buta" minifyer abból csinált 18-at. Ha behúzzak egy keretet abból esetleg 9-et csinálni, 9-et nyertem, de a keret +30, hogyan jön ki a matek?

    Jelenleg egy szem js állapotgép halmazom van kliens oldalon ilyen hosszú nevekkel mint: ksr.localstorage_state_machine.process_incoming_remove és társaik. Fejlesztéshez így célszerűbb, de futtatáshoz elég lenne k.l.p és hasonlók. Jó pár kbyte lenne megspórolható csak ismert struktúra útvonalon a forrás saját hivatkozási neveit átírni.

    Ha mást nem, írok rá saját programot ismert stringeket 1:1 lecserélni, és adok neki listát, mit mire cseréljen. Megadom a rövid neveket én magam. Épp csak furcsa, hogy ne létezne már automata tool ilyesmire? Ha létezik, nem szándékoztam én a kereket újra feltalálni.

    "Ha behúzzak egy keretet abból esetleg 9-et csinálni, 9-et nyertem, de a keret +30, hogyan jön ki a matek?"

    Elképesztő magabiztossággal tudsz butaságokat írni még mindig :D Szórakoztatsz :)
    A matek úgy jön ki, hogy jó szokásod szerint megint nem néztél utána, hogy miről beszélek. Webpack, Rollup: ezek nem js libek, hanem js task runnerek, ezeket nem behúzni kell, hanem ezeken át kell futtatni a kódod, és csinálnak neked js bundle-t, minifikálva.
    De mindegy is, te úgyis jobban tudod, hogy mit hogyan csinálsz :D

  • coco2
    őstag

    Ahogy látom a JSCompress Uglify3-at használ maga alatt, ami ES5-re fordít. Ha te ES5 felett írtad a kódodat, akkor belefordíthat egy csomó polyfil-t. Használj normális webpack, rollup akármilyen js task runnert, amiknek van beépített js bundle - minifikátora is. Azok valószínűleg valamivel kisebb js-t fognak tudni csinálni, bár csodák nincsenek, a 41kbyte-ból sosem lesz mondjuk 5kbyte :D

    ES5-re nem kell fordítani, alapból úgy írtam. Nincs semmi kliens extra érintve (jquery sincs pld), móricka-egyszerűen építkeztem. Ha behúzzak bármi extrát, gyanítom, az önmagában +kbyte. Most 41 a kbyte számláló vége, és "buta" minifyer abból csinált 18-at. Ha behúzzak egy keretet abból esetleg 9-et csinálni, 9-et nyertem, de a keret +30, hogyan jön ki a matek?

    Jelenleg egy szem js állapotgép halmazom van kliens oldalon ilyen hosszú nevekkel mint: ksr.localstorage_state_machine.process_incoming_remove és társaik. Fejlesztéshez így célszerűbb, de futtatáshoz elég lenne k.l.p és hasonlók. Jó pár kbyte lenne megspórolható csak ismert struktúra útvonalon a forrás saját hivatkozási neveit átírni.

    Ha mást nem, írok rá saját programot ismert stringeket 1:1 lecserélni, és adok neki listát, mit mire cseréljen. Megadom a rövid neveket én magam. Épp csak furcsa, hogy ne létezne már automata tool ilyesmire? Ha létezik, nem szándékoztam én a kereket újra feltalálni.

  • nevemfel
    senior tag

    JScompress le tudta szedni a 41kb scriptet 18 kb-ig. Ahogy elnézem a végeredményt, még benne vannak a cefet hosszú objektum nevek, amik simán lecserélhetőek lennének. Van valami paraméterezhetőbb verzió belőle valahol, aminek megmondhatom, hogy eridjen nyugodtan mélyebbre is az objektum struktúrában, és cserélgessen ott is rövidebbekre?

    The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

    Donald Knuth

  • martonx
    veterán

    JScompress le tudta szedni a 41kb scriptet 18 kb-ig. Ahogy elnézem a végeredményt, még benne vannak a cefet hosszú objektum nevek, amik simán lecserélhetőek lennének. Van valami paraméterezhetőbb verzió belőle valahol, aminek megmondhatom, hogy eridjen nyugodtan mélyebbre is az objektum struktúrában, és cserélgessen ott is rövidebbekre?

    Ahogy látom a JSCompress Uglify3-at használ maga alatt, ami ES5-re fordít. Ha te ES5 felett írtad a kódodat, akkor belefordíthat egy csomó polyfil-t. Használj normális webpack, rollup akármilyen js task runnert, amiknek van beépített js bundle - minifikátora is. Azok valószínűleg valamivel kisebb js-t fognak tudni csinálni, bár csodák nincsenek, a 41kbyte-ból sosem lesz mondjuk 5kbyte :D

  • coco2
    őstag

    JScompress le tudta szedni a 41kb scriptet 18 kb-ig. Ahogy elnézem a végeredményt, még benne vannak a cefet hosszú objektum nevek, amik simán lecserélhetőek lennének. Van valami paraméterezhetőbb verzió belőle valahol, aminek megmondhatom, hogy eridjen nyugodtan mélyebbre is az objektum struktúrában, és cserélgessen ott is rövidebbekre?

  • cattus
    addikt

    Pontosvessző szintaktikai kérdésen vakarom a buksit. Példák:

    var o1= {};
    o1.x1= function() { return 3; }

    o1.x1= function() { return 3 };

    o1.x1= function() { return 3; };

    Mi az előírt, és mi a megengedhető szintaktika a 3 közül ?

    Időnként kiröhögöm magam, amilyen kezdő vagyok :D

    Nem kötelező JS-ben pontosvesszőt írni, csak nagyon speciális esetekben. A legtöbb szövegszerkesztő amúgy tudja hogy automatikusan kirakja a megfelelő helyekre, én személy szerint mindig úgy konfigurálom a lintert, hogy ne rakjon sehova pontosvesszőt.

  • Rimuru
    veterán

    Pontosvessző szintaktikai kérdésen vakarom a buksit. Példák:

    var o1= {};
    o1.x1= function() { return 3; }

    o1.x1= function() { return 3 };

    o1.x1= function() { return 3; };

    Mi az előírt, és mi a megengedhető szintaktika a 3 közül ?

    Időnként kiröhögöm magam, amilyen kezdő vagyok :D

    Az ASI neha tud meglepetest okozni, erdemes lehet kicsit utanaolvasni.

  • Silεncε
    őstag

    Pontosvessző szintaktikai kérdésen vakarom a buksit. Példák:

    var o1= {};
    o1.x1= function() { return 3; }

    o1.x1= function() { return 3 };

    o1.x1= function() { return 3; };

    Mi az előírt, és mi a megengedhető szintaktika a 3 közül ?

    Időnként kiröhögöm magam, amilyen kezdő vagyok :D

    Igazából sehova nem kell pontosvesszőt raknod, mert mindegyik lefut, de tényleg a harmadik a legjobb közülük (a legszebb szerintem egy arrow function lenne)

  • nevemfel
    senior tag

    Pontosvessző szintaktikai kérdésen vakarom a buksit. Példák:

    var o1= {};
    o1.x1= function() { return 3; }

    o1.x1= function() { return 3 };

    o1.x1= function() { return 3; };

    Mi az előírt, és mi a megengedhető szintaktika a 3 közül ?

    Időnként kiröhögöm magam, amilyen kezdő vagyok :D

    A harmadik a helyes, de mindhárom működik.

  • vlevi
    nagyúr

    Pontosvessző szintaktikai kérdésen vakarom a buksit. Példák:

    var o1= {};
    o1.x1= function() { return 3; }

    o1.x1= function() { return 3 };

    o1.x1= function() { return 3; };

    Mi az előírt, és mi a megengedhető szintaktika a 3 közül ?

    Időnként kiröhögöm magam, amilyen kezdő vagyok :D

    Tudtommal a {} után nem kell ; mert az maga a kod blokk. A pontos vessző az a sorvegjel akarna lenni.

  • coco2
    őstag

    Pontosvessző szintaktikai kérdésen vakarom a buksit. Példák:

    var o1= {};
    o1.x1= function() { return 3; }

    o1.x1= function() { return 3 };

    o1.x1= function() { return 3; };

    Mi az előírt, és mi a megengedhető szintaktika a 3 közül ?

    Időnként kiröhögöm magam, amilyen kezdő vagyok :D

  • martonx
    veterán

    Ami konkrétan az én esetemet illeti, had kérdezzem meg, eddig hány sikeres facebook app review van a hátad mögött, amiben üzleti azonosítás-köteles hozzáférést is kértél?

    Kettő. És hogy jön ez ide?

  • Taci
    addikt

    Köszönöm az iránymutatást a témában mindenkinek. Valóban nem ebbe a topikba való, majd ha oda értem, a megfelelő helyeken utána járok a teendőknek. Köszönöm.

  • coco2
    őstag

    Továbbra is túlliheged, de nekem végülis mindegy, abból baj nem lesz, csak magadnak brutál sok plusz munkát csinálsz.

    Ami konkrétan az én esetemet illeti, had kérdezzem meg, eddig hány sikeres facebook app review van a hátad mögött, amiben üzleti azonosítás-köteles hozzáférést is kértél?

  • martonx
    veterán

    "_General_ data protection regulation" - csak hogy lássuk a nevét egészben. Bármilyen adat, ami a felhasználótól vagy tevékenységéből származik közvetve vagy közvetlenül, el kell számolni vele utolsó bitig. Semmit sem számít, hogy személyi eszközön vagy nyilvános számítógépen használja-e valaki, hogy az adat közvetlenül nyomon követhető, vagy személyhez köthető-e vagy sem, az adatkezelési tájékoztató törvényben előírt kötelezettség.

    20-onéves kölykök a játszótéren egymásnak nagyzolós duma közben nyilván más a valóság érzékelésük. De az a játszótéren van. 3 bíróval farkas szemet nézve valahogy az összes nagyzolós duma kussol, mint kutyakaki a fűben.

    Továbbra is túlliheged, de nekem végülis mindegy, abból baj nem lesz, csak magadnak brutál sok plusz munkát csinálsz.

  • coco2
    őstag

    Nem lehetne ezt a jogi szemetet a topikon kívül tartani?

    Természetesen leszürkítettem, és a magam részéről nem ragaszkodom hozzá. Felmerült kérdésként, hát gondoltam, röviden ennyit megér. De abban igazad lehet, hogy akit a továbbiakban érdekel a téma, fáradjon át vele a jogász topic-ba.

  • nevemfel
    senior tag

    "_General_ data protection regulation" - csak hogy lássuk a nevét egészben. Bármilyen adat, ami a felhasználótól vagy tevékenységéből származik közvetve vagy közvetlenül, el kell számolni vele utolsó bitig. Semmit sem számít, hogy személyi eszközön vagy nyilvános számítógépen használja-e valaki, hogy az adat közvetlenül nyomon követhető, vagy személyhez köthető-e vagy sem, az adatkezelési tájékoztató törvényben előírt kötelezettség.

    20-onéves kölykök a játszótéren egymásnak nagyzolós duma közben nyilván más a valóság érzékelésük. De az a játszótéren van. 3 bíróval farkas szemet nézve valahogy az összes nagyzolós duma kussol, mint kutyakaki a fűben.

    Nem lehetne ezt a jogi szemetet a topikon kívül tartani?

  • coco2
    őstag

    Ez esetben a GDPR-nek semmi dolga nincs a localstorage-el, hiszen te saját magad nem tárolsz semmilyen adatot. A user saját gépén tárolódik a saját geolokációs adata, aminek engedélyezéshez kap is a böngészőtől felugró ablakot, szóval nyugi.
    Akkor lenne mindez érdekes a GDPR szemszögéből nézve, ha ezt az adatot magadhoz továbbítanád, és mondjuk a saját adatbázisodban minden egyes userhez letárolnád.
    Nem kell ezt túllihegni.

    "_General_ data protection regulation" - csak hogy lássuk a nevét egészben. Bármilyen adat, ami a felhasználótól vagy tevékenységéből származik közvetve vagy közvetlenül, el kell számolni vele utolsó bitig. Semmit sem számít, hogy személyi eszközön vagy nyilvános számítógépen használja-e valaki, hogy az adat közvetlenül nyomon követhető, vagy személyhez köthető-e vagy sem, az adatkezelési tájékoztató törvényben előírt kötelezettség.

    20-onéves kölykök a játszótéren egymásnak nagyzolós duma közben nyilván más a valóság érzékelésük. De az a játszótéren van. 3 bíróval farkas szemet nézve valahogy az összes nagyzolós duma kussol, mint kutyakaki a fűben.

  • martonx
    veterán

    Mivel még nem vagyok az oldal szerkezetével teljesen kész, nem foglalkoztam a cookie-kkal. Az időjárás-modul optimális működéséhez viszont letárolom a kliensen az eszköz koordinátáit, ezt local storage-dzsal oldottam meg.
    "Cookies are primarily for reading server-side, local storage can only be read by the client-side."

    Viszont amit írtál legutóbb, amiatt kérdezném, hogy ez rendben van-e így?
    "Adatkezelési tájékoztatót írni róla alkalmasint jogi rémálom, ha oda személyes adatokat pakolnál. Rendesen csúnyán fog kinézni adatbiztonsági kockázatként."
    Ha így nem jó (cookie szerverrel való kommunikációhoz, local storage, ha csak lokálban kell adattal dolgozni), mi alapján tudom eldönteni, hogy mit-hol tárolhatok? Mi a "GDPR-kompatibilis irányelv"?

    A saját eszközén tárolni a saját helyadatait az adatbiztonsági kockázat?

    Ez esetben a GDPR-nek semmi dolga nincs a localstorage-el, hiszen te saját magad nem tárolsz semmilyen adatot. A user saját gépén tárolódik a saját geolokációs adata, aminek engedélyezéshez kap is a böngészőtől felugró ablakot, szóval nyugi.
    Akkor lenne mindez érdekes a GDPR szemszögéből nézve, ha ezt az adatot magadhoz továbbítanád, és mondjuk a saját adatbázisodban minden egyes userhez letárolnád.
    Nem kell ezt túllihegni.

  • coco2
    őstag

    Mivel még nem vagyok az oldal szerkezetével teljesen kész, nem foglalkoztam a cookie-kkal. Az időjárás-modul optimális működéséhez viszont letárolom a kliensen az eszköz koordinátáit, ezt local storage-dzsal oldottam meg.
    "Cookies are primarily for reading server-side, local storage can only be read by the client-side."

    Viszont amit írtál legutóbb, amiatt kérdezném, hogy ez rendben van-e így?
    "Adatkezelési tájékoztatót írni róla alkalmasint jogi rémálom, ha oda személyes adatokat pakolnál. Rendesen csúnyán fog kinézni adatbiztonsági kockázatként."
    Ha így nem jó (cookie szerverrel való kommunikációhoz, local storage, ha csak lokálban kell adattal dolgozni), mi alapján tudom eldönteni, hogy mit-hol tárolhatok? Mi a "GDPR-kompatibilis irányelv"?

    A saját eszközén tárolni a saját helyadatait az adatbiztonsági kockázat?

    Az elsődleges gdpr irányelv az elszámoltathatóság. Le kell írnod, milyen adatot kérsz el, miért kéred el, mire és hogyan használod, tárolod, változtatod, frissíted, hogyan nézhetik meg a felhasználóid, milyen adatokat tárolsz tőlük aktuálisan, hogyan kérhetik a törlését. És aztán be kell tartanod. Bármi adatot bármi célra kértél el, tényleg csak arra használd, különben kaphatsz a nyakadba alapos büntetést (mert az jellegében olyasmi, mint a sikkasztás). _Kényelmes_ lehetőséget kell adnod a felhasználóidnak, hogy jó előre elolvashassák, mit, hogyan, és miért csinálnál, és eldönthessék, hogy azt elfogadják-e, vagy sem. Ennyi a gdpr-ről.

    A local storage-et illetően nem sikerült precízen elmagyaráznod, mire, hogyan, és miért használnád, így nem sokat tudunk róla véleményezni. Esetleg írd meg róla az adatkezelési tájékoztatót, azt elolvassuk, és akkor majd véleményt tudunk róla írni.

    A gdpr irányelveken túl léteznek közösségi irányelvek is. Például egy YT véleményvezér lehord a marhaságaidért, az alkalmazásodat lehúzhatod a budiban :)

  • coco2
    őstag

    [link] :DDD

    Az én megoldásom volt csak a béna, több időt kellett volna annak a rendberakásával töltenem, mint ezt így megcsinálni, ahogy végül sikerült. :)

    Szerintem egész jó loading indikátorod van :D :C

  • Taci
    addikt

    Nem cookie-t hoz létre, hanem adat file-t. Korlátos mérete van, szóval csak valami személyi cucc fér bele. 5 megára számíthatsz, többre nem. Adatkezelési tájékoztatót írni róla alkalmasint jogi rémálom, ha oda személyes adatokat pakolnál. Rendesen csúnyán fog kinézni adatbiztonsági kockázatként.

    Mivel még nem vagyok az oldal szerkezetével teljesen kész, nem foglalkoztam a cookie-kkal. Az időjárás-modul optimális működéséhez viszont letárolom a kliensen az eszköz koordinátáit, ezt local storage-dzsal oldottam meg.
    "Cookies are primarily for reading server-side, local storage can only be read by the client-side."

    Viszont amit írtál legutóbb, amiatt kérdezném, hogy ez rendben van-e így?
    "Adatkezelési tájékoztatót írni róla alkalmasint jogi rémálom, ha oda személyes adatokat pakolnál. Rendesen csúnyán fog kinézni adatbiztonsági kockázatként."
    Ha így nem jó (cookie szerverrel való kommunikációhoz, local storage, ha csak lokálban kell adattal dolgozni), mi alapján tudom eldönteni, hogy mit-hol tárolhatok? Mi a "GDPR-kompatibilis irányelv"?

    A saját eszközén tárolni a saját helyadatait az adatbiztonsági kockázat?

  • Taci
    addikt

    Megkérdezhetem miért találtad "bénának" a forgót?

    Aktuálisan szintén van loading indicator problémám, de én nem bénának találtam, hanem kompatibilitás kérdések miatt húzom a számat.

    Amit egyenlőre én csináltam, az egy még sokkal bénább dolog. A teljes div-et egy másik div-vel takarom le (z indexet írok át, és a másiknak fölé rakom). A takaró div kapott fehér hátteret, így nem látszik, ami mögötte van. És egyenlőre placeholder-ként egy darab szöveg van a takaró div-en "please wait". Na ez aztán a tényleg béna :D Viszont 100% böngésző kompatibilis.

    [link] :DDD

    Az én megoldásom volt csak a béna, több időt kellett volna annak a rendberakásával töltenem, mint ezt így megcsinálni, ahogy végül sikerült. :)

  • coco2
    őstag

    Korábban (mintha akkora nagy JS-múlttal rendelkeznék :DDD ) már voltak gondjaim vele, nem mindig működött (megfelelően), így próbálom kerülni a használatát.

    Megkérdezhetem miért találtad "bénának" a forgót?

    Aktuálisan szintén van loading indicator problémám, de én nem bénának találtam, hanem kompatibilitás kérdések miatt húzom a számat.

    Amit egyenlőre én csináltam, az egy még sokkal bénább dolog. A teljes div-et egy másik div-vel takarom le (z indexet írok át, és a másiknak fölé rakom). A takaró div kapott fehér hátteret, így nem látszik, ami mögötte van. És egyenlőre placeholder-ként egy darab szöveg van a takaró div-en "please wait". Na ez aztán a tényleg béna :D Viszont 100% böngésző kompatibilis.

  • Taci
    addikt

    A classList-nek van toggle metódusa, azzal nem kell if-eket írnod.

    Korábban (mintha akkora nagy JS-múlttal rendelkeznék :DDD ) már voltak gondjaim vele, nem mindig működött (megfelelően), így próbálom kerülni a használatát.

  • cattus
    addikt

    Az csak a skeleton loader-ben van úgy megcsinálva, viszont azt túl sok idő lett volna a mostani formátumra ráhúzni.

    Végül arra jutottam, hogy a template-be beraktam az feed image-khez, hogy ha betöltött, távolítsa el a háttérért felelős osztályokat:
    onload="removeLoadingBackground(this);"

    function removeLoadingBackground(element){
        if (element.classList.contains("loading-bg")){
            element.classList.remove("loading-bg");
        }
        if (element.classList.contains("loading-logo")){
            element.classList.remove("loading-logo");
        }
        if (element.classList.contains("loading-img")){
            element.classList.remove("loading-img");
        }
    }

    Csak az a biztos tényleg, ha nem hagyom ott pörögni, ki tudja, melyik böngésző hogyan kezeli (vagy nem kezeli).

    Nem a legszebb megoldás, ellenben működik.

    Köszönöm a gyors választ amúgy mindenkinek. :)

    A classList-nek van toggle metódusa, azzal nem kell if-eket írnod.

  • Taci
    addikt

    Ha jól látom leszeded a loading class-r róla betöltéskor, amihez kötve van az animáció, így szerintem nem fogja utána tovább az erőforrást használni.

    Az csak a skeleton loader-ben van úgy megcsinálva, viszont azt túl sok idő lett volna a mostani formátumra ráhúzni.

    Végül arra jutottam, hogy a template-be beraktam az feed image-khez, hogy ha betöltött, távolítsa el a háttérért felelős osztályokat:
    onload="removeLoadingBackground(this);"

    function removeLoadingBackground(element){
        if (element.classList.contains("loading-bg")){
            element.classList.remove("loading-bg");
        }
        if (element.classList.contains("loading-logo")){
            element.classList.remove("loading-logo");
        }
        if (element.classList.contains("loading-img")){
            element.classList.remove("loading-img");
        }
    }

    Csak az a biztos tényleg, ha nem hagyom ott pörögni, ki tudja, melyik böngésző hogyan kezeli (vagy nem kezeli).

    Nem a legszebb megoldás, ellenben működik.

    Köszönöm a gyors választ amúgy mindenkinek. :)

  • cattus
    addikt

    Nem igazán szeretnék sok időt elvesztegetni annak a kezelésére, hogy amíg nem töltenek be a képek a feed item-eknél, addig is látszódjon "valami".

    Már megkapták a betöltendő kép méretét, így a helyük "le van foglalva".
    Arra gondoltam először, betöltök valami pörgő-forgó ikont, de aztán azt bénának találtam.
    Aztán jött az, hogy akkor megcsinálom rendesen egy loading skeleton-nal. Ez el is készült: https://codepen.io/pasztorlaszlo/pen/VwmBKpm

    Viszont sajnos nem úgy kezdtem megcsinálni az oldal felépítését, hogy ezt könnyen be tudnám építeni, így arra gondoltam, leegyszerűsítem a dolgot, és ezt az (ill. ehhez hasonló) animációt simán beállítom a feed item template-jébe háttérnek. Amíg töltődik a kép, megy az animáció, nem "üresen" vár a user, látja, hogy oda töltődni fog valami, aztán betöltődik a kép és kész.

    A kérdésem az lenne, hogy "okosak" annyira a böngészők, hogy ha "rá töltődik" a háttére a kép, (azt nyilván teljesen eltakarva), akkor az animációt leállítják, vagy ez a végtelenségig fut a háttérben is tovább, pörgetve a cpu-t, és kezelnem kell valahogy?

    Köszi!

    Ha jól látom leszeded a loading class-r róla betöltéskor, amihez kötve van az animáció, így szerintem nem fogja utána tovább az erőforrást használni.

  • Silεncε
    őstag

    Nem igazán szeretnék sok időt elvesztegetni annak a kezelésére, hogy amíg nem töltenek be a képek a feed item-eknél, addig is látszódjon "valami".

    Már megkapták a betöltendő kép méretét, így a helyük "le van foglalva".
    Arra gondoltam először, betöltök valami pörgő-forgó ikont, de aztán azt bénának találtam.
    Aztán jött az, hogy akkor megcsinálom rendesen egy loading skeleton-nal. Ez el is készült: https://codepen.io/pasztorlaszlo/pen/VwmBKpm

    Viszont sajnos nem úgy kezdtem megcsinálni az oldal felépítését, hogy ezt könnyen be tudnám építeni, így arra gondoltam, leegyszerűsítem a dolgot, és ezt az (ill. ehhez hasonló) animációt simán beállítom a feed item template-jébe háttérnek. Amíg töltődik a kép, megy az animáció, nem "üresen" vár a user, látja, hogy oda töltődni fog valami, aztán betöltődik a kép és kész.

    A kérdésem az lenne, hogy "okosak" annyira a böngészők, hogy ha "rá töltődik" a háttére a kép, (azt nyilván teljesen eltakarva), akkor az animációt leállítják, vagy ez a végtelenségig fut a háttérben is tovább, pörgetve a cpu-t, és kezelnem kell valahogy?

    Köszi!

    Szerintem a legegyszerűbb ha kipróbálod, így hirtelen nem találtam róla semmit, de nem hinném, hogy ok foglalkoznak ezzel

  • martonx
    veterán

    Nem igazán szeretnék sok időt elvesztegetni annak a kezelésére, hogy amíg nem töltenek be a képek a feed item-eknél, addig is látszódjon "valami".

    Már megkapták a betöltendő kép méretét, így a helyük "le van foglalva".
    Arra gondoltam először, betöltök valami pörgő-forgó ikont, de aztán azt bénának találtam.
    Aztán jött az, hogy akkor megcsinálom rendesen egy loading skeleton-nal. Ez el is készült: https://codepen.io/pasztorlaszlo/pen/VwmBKpm

    Viszont sajnos nem úgy kezdtem megcsinálni az oldal felépítését, hogy ezt könnyen be tudnám építeni, így arra gondoltam, leegyszerűsítem a dolgot, és ezt az (ill. ehhez hasonló) animációt simán beállítom a feed item template-jébe háttérnek. Amíg töltődik a kép, megy az animáció, nem "üresen" vár a user, látja, hogy oda töltődni fog valami, aztán betöltődik a kép és kész.

    A kérdésem az lenne, hogy "okosak" annyira a böngészők, hogy ha "rá töltődik" a háttére a kép, (azt nyilván teljesen eltakarva), akkor az animációt leállítják, vagy ez a végtelenségig fut a háttérben is tovább, pörgetve a cpu-t, és kezelnem kell valahogy?

    Köszi!

    fut a háttérben is tovább. Bár lehet, hogy vannak már annyira értelmesek a böngészők, hogy a nem látható elemek animációira ne pazaroljanak erőforrást.

    Jól megválaszoltam :D

  • Taci
    addikt

    Nem igazán szeretnék sok időt elvesztegetni annak a kezelésére, hogy amíg nem töltenek be a képek a feed item-eknél, addig is látszódjon "valami".

    Már megkapták a betöltendő kép méretét, így a helyük "le van foglalva".
    Arra gondoltam először, betöltök valami pörgő-forgó ikont, de aztán azt bénának találtam.
    Aztán jött az, hogy akkor megcsinálom rendesen egy loading skeleton-nal. Ez el is készült: https://codepen.io/pasztorlaszlo/pen/VwmBKpm

    Viszont sajnos nem úgy kezdtem megcsinálni az oldal felépítését, hogy ezt könnyen be tudnám építeni, így arra gondoltam, leegyszerűsítem a dolgot, és ezt az (ill. ehhez hasonló) animációt simán beállítom a feed item template-jébe háttérnek. Amíg töltődik a kép, megy az animáció, nem "üresen" vár a user, látja, hogy oda töltődni fog valami, aztán betöltődik a kép és kész.

    A kérdésem az lenne, hogy "okosak" annyira a böngészők, hogy ha "rá töltődik" a háttére a kép, (azt nyilván teljesen eltakarva), akkor az animációt leállítják, vagy ez a végtelenségig fut a háttérben is tovább, pörgetve a cpu-t, és kezelnem kell valahogy?

    Köszi!

  • lanszelot
    addikt

    Ha ezek az alapok megvannak, jöhetnek az olyan varázsszavak, mint DOM, event loop, Promise, event bubbling (eventek, ez lesz a válasz a kérdésedre), closure. Amik a JS saját dolgai

    Először is köszönöm szépen mindenkinek.

    Végre tudom mit keressek, találtam is, és így legalább tudom merre tovább :)

    A weboldalt is elkezdtem, és tetszik. Van nagyon könnyű, és ad egy kis pozitív visszacsatolást, hogy azokat legalább meg tudom csinálni. Ez nagyon kellett.

  • coco2
    őstag

    Hello,

    Kérlek segítsetek már. Nagyon szeretném megtanulni js programozást.
    HTML, CSS, JS nagyon alapok meg vannak.
    JS: adattipusok, operátorok, tömb, objektum, ciklus, elágazás, függvény...ezek meg vannak
    értem is mind.
    De mikor van egy feladat nem tudom alkalmazni.
    Főleg ott bukok el, hogy mi az "action" , ott épp melyiket kell használnom, vagy hogy magát az "action"-t hogy érem el.
    pl csinálok egy gombot, és a besz urt youtube video play/pause hozzá rendelem
    Nem megoldani akarom ezt, ez csak példa.
    Itt pl nem tudom, hogy a play/pause "action" az honnan lesz, vagy hol találok rá.
    Rengeteg videót néztem, magán órát is vettem, de nem értem ezek honnan jönnek, hogy találom meg.
    Ok, értem, hogy gyakorlás gyakorlás és még több gyakorlás, de valami nincs meg valami hiányzik, egy egyeszerű kis programot se tudok készíteni /nem a youtube, sokkal sokkal egyszerőbbet se, pl egy gomb dob egy random számot ami nem lehet ugyanaz mint az előző/ és nulla a pozitív élményem, nem tudom hol, vagy mit keressek, nem tudom merre, azt se tudom mit kellene keresnem.
    Mivel semmi pozitív élményem ezért csak felidegesít az egész, hogy toporgok, semerre se jutok, falak mindenhol.
    Könyvből nem tudok tanulni.
    Angolommal nincs gond.
    Volna valami js oktató videó teljesen idiótáknak?
    Szerintem az egész elképzelésem hibás lehet, ezt tudom elképzelni, hogy ezért ütközöm falba folyamatosan. Vagy nem tudom.
    Teljesen tanácstalan vagyok.

    Hogy ki hogyan tud / szeret tanulni, az embere válogatja. Éppen a programozást illetően az oktató videók talán nem a legjobbak kezdetben. Sokkal inkább ilyesmi könyvekkel érdemes elkezdeni. Hogy e-book formájában meg tudod-e szerezni valahonnét / valahogyan, az rajtad áll. Általában beszerezhető valami. Leír alapokat, aztán mutat rá gyakorlatot, mire és hogyan jó.

    A "mindent megtanulni" - nem, az úgy nem szokott működni. Valamit megtanulni, úgy már esélyesebb. Válassz egy darab elemi konkrétumot, mire akarod használni. És azt csináld meg. Aztán csinálod az egyik példát a másik után. Ha 5 év múlva még mindig csinálod, valószínűleg addigra már megtanultál tanulni. (Vagy réges-régen feladtad.)

  • Silεncε
    őstag

    Hello,

    Kérlek segítsetek már. Nagyon szeretném megtanulni js programozást.
    HTML, CSS, JS nagyon alapok meg vannak.
    JS: adattipusok, operátorok, tömb, objektum, ciklus, elágazás, függvény...ezek meg vannak
    értem is mind.
    De mikor van egy feladat nem tudom alkalmazni.
    Főleg ott bukok el, hogy mi az "action" , ott épp melyiket kell használnom, vagy hogy magát az "action"-t hogy érem el.
    pl csinálok egy gombot, és a besz urt youtube video play/pause hozzá rendelem
    Nem megoldani akarom ezt, ez csak példa.
    Itt pl nem tudom, hogy a play/pause "action" az honnan lesz, vagy hol találok rá.
    Rengeteg videót néztem, magán órát is vettem, de nem értem ezek honnan jönnek, hogy találom meg.
    Ok, értem, hogy gyakorlás gyakorlás és még több gyakorlás, de valami nincs meg valami hiányzik, egy egyeszerű kis programot se tudok készíteni /nem a youtube, sokkal sokkal egyszerőbbet se, pl egy gomb dob egy random számot ami nem lehet ugyanaz mint az előző/ és nulla a pozitív élményem, nem tudom hol, vagy mit keressek, nem tudom merre, azt se tudom mit kellene keresnem.
    Mivel semmi pozitív élményem ezért csak felidegesít az egész, hogy toporgok, semerre se jutok, falak mindenhol.
    Könyvből nem tudok tanulni.
    Angolommal nincs gond.
    Volna valami js oktató videó teljesen idiótáknak?
    Szerintem az egész elképzelésem hibás lehet, ezt tudom elképzelni, hogy ezért ütközöm falba folyamatosan. Vagy nem tudom.
    Teljesen tanácstalan vagyok.

    Ha ezek az alapok megvannak, jöhetnek az olyan varázsszavak, mint DOM, event loop, Promise, event bubbling (eventek, ez lesz a válasz a kérdésedre), closure. Amik a JS saját dolgai

  • martonx
    veterán

    Hello,

    Kérlek segítsetek már. Nagyon szeretném megtanulni js programozást.
    HTML, CSS, JS nagyon alapok meg vannak.
    JS: adattipusok, operátorok, tömb, objektum, ciklus, elágazás, függvény...ezek meg vannak
    értem is mind.
    De mikor van egy feladat nem tudom alkalmazni.
    Főleg ott bukok el, hogy mi az "action" , ott épp melyiket kell használnom, vagy hogy magát az "action"-t hogy érem el.
    pl csinálok egy gombot, és a besz urt youtube video play/pause hozzá rendelem
    Nem megoldani akarom ezt, ez csak példa.
    Itt pl nem tudom, hogy a play/pause "action" az honnan lesz, vagy hol találok rá.
    Rengeteg videót néztem, magán órát is vettem, de nem értem ezek honnan jönnek, hogy találom meg.
    Ok, értem, hogy gyakorlás gyakorlás és még több gyakorlás, de valami nincs meg valami hiányzik, egy egyeszerű kis programot se tudok készíteni /nem a youtube, sokkal sokkal egyszerőbbet se, pl egy gomb dob egy random számot ami nem lehet ugyanaz mint az előző/ és nulla a pozitív élményem, nem tudom hol, vagy mit keressek, nem tudom merre, azt se tudom mit kellene keresnem.
    Mivel semmi pozitív élményem ezért csak felidegesít az egész, hogy toporgok, semerre se jutok, falak mindenhol.
    Könyvből nem tudok tanulni.
    Angolommal nincs gond.
    Volna valami js oktató videó teljesen idiótáknak?
    Szerintem az egész elképzelésem hibás lehet, ezt tudom elképzelni, hogy ezért ütközöm falba folyamatosan. Vagy nem tudom.
    Teljesen tanácstalan vagyok.

    Most a kedvedért rákerestem a javascript code challanges kulcsszavakra.
    Ez az oldal egész jópofának tűnik: Edabit
    De van kismillió másik hasonszőrű.

  • lanszelot
    addikt

    Hello,

    Kérlek segítsetek már. Nagyon szeretném megtanulni js programozást.
    HTML, CSS, JS nagyon alapok meg vannak.
    JS: adattipusok, operátorok, tömb, objektum, ciklus, elágazás, függvény...ezek meg vannak
    értem is mind.
    De mikor van egy feladat nem tudom alkalmazni.
    Főleg ott bukok el, hogy mi az "action" , ott épp melyiket kell használnom, vagy hogy magát az "action"-t hogy érem el.
    pl csinálok egy gombot, és a besz urt youtube video play/pause hozzá rendelem
    Nem megoldani akarom ezt, ez csak példa.
    Itt pl nem tudom, hogy a play/pause "action" az honnan lesz, vagy hol találok rá.
    Rengeteg videót néztem, magán órát is vettem, de nem értem ezek honnan jönnek, hogy találom meg.
    Ok, értem, hogy gyakorlás gyakorlás és még több gyakorlás, de valami nincs meg valami hiányzik, egy egyeszerű kis programot se tudok készíteni /nem a youtube, sokkal sokkal egyszerőbbet se, pl egy gomb dob egy random számot ami nem lehet ugyanaz mint az előző/ és nulla a pozitív élményem, nem tudom hol, vagy mit keressek, nem tudom merre, azt se tudom mit kellene keresnem.
    Mivel semmi pozitív élményem ezért csak felidegesít az egész, hogy toporgok, semerre se jutok, falak mindenhol.
    Könyvből nem tudok tanulni.
    Angolommal nincs gond.
    Volna valami js oktató videó teljesen idiótáknak?
    Szerintem az egész elképzelésem hibás lehet, ezt tudom elképzelni, hogy ezért ütközöm falba folyamatosan. Vagy nem tudom.
    Teljesen tanácstalan vagyok.

  • lanszelot
    addikt

    Van a HTML-edben .title osztályú elem?

    Megvan, a visual studio code rossz helyre dobta a script file hivatkozás linket
    automatizáció....hozta a hibát :U
    <script>"ide tette"</script>
    <script "nem ide"></script>
    Köszönöm a segítséget :)

  • lanszelot
    addikt

    Van a HTML-edben .title osztályú elem?

    Pontosan úgy ahogy neki /igen/
    .title, nincs, mivel pont jelöli, hogy osztály title pedig a nevét, tehát "title" osztály van
    Minden úgy van mint neki.

  • Silεncε
    őstag

    Hello,
    Pontosan ugyanazt beÍrtam amit a srác 3:12-nél neki át vált pirosra a szöveg, nekem nem.
    Miért?
    Karakterről karakterre megnéztem, pont ugyanaz a html és a js is. /css üres neki is, később látszik majd/
    Chrome alatt és Edge alatt is néztem, nekem fekete marad.
    console fül alatt nincs hiba Chrome alatt
    Edge alatt hibakód - nem tudja betölteni a favicont - de nincs is rá hivatkozva, tehát nem értem miért dobja ezt a hibát.
    /nem tudom hogy tudok ide kódot beszúrni ezért csak írni tudom, hogy tuti minden ugyanaz mint neki/

    Van a HTML-edben .title osztályú elem?

  • lanszelot
    addikt

    Ez a fajta asszociatív tömb nem létezik JS-ben, a legközelebbi az egy objektum, aminek string paraméterei vannak (ahogy át is jön json-ban). Ez nem tömbbe kell beleerőszakolni, hanem meg kell tartani objektumnak és stingként kell hivatkozni az elemekre:
    const json = '{"0":0, "5":0}';
    const obj = JSON.parse(json);
    console.log(obj[0]);
    console.log(obj[5]);
    console.log(obj);
    obj[8] = 1
    console.log(JSON.stringify(obj));
    > 0
    > 0
    > Object { 0: 0, 5: 0 }
    > "{"0":0,"5":0,"8":1}"

    A számból álló kulcsokat tényleg nem szereti JS, mert az objektum kulcsai csak stringek lehetnek.

    Hello,
    Pontosan ugyanazt beÍrtam amit a srác 3:12-nél neki át vált pirosra a szöveg, nekem nem.
    Miért?
    Karakterről karakterre megnéztem, pont ugyanaz a html és a js is. /css üres neki is, később látszik majd/
    Chrome alatt és Edge alatt is néztem, nekem fekete marad.
    console fül alatt nincs hiba Chrome alatt
    Edge alatt hibakód - nem tudja betölteni a favicont - de nincs is rá hivatkozva, tehát nem értem miért dobja ezt a hibát.
    /nem tudom hogy tudok ide kódot beszúrni ezért csak írni tudom, hogy tuti minden ugyanaz mint neki/

  • Taci
    addikt

    Amikor lekéred az új adatot, amivel bővíted az oldalt, akkor megjeleníted a spinnert. Amikor betöltött az adat, akkor berakod a DOM-ba, ahova annak kerülnie kell.

    Miután ez megvan, akkor ahova került az új tartalom, megnézed a tartalomban van-e új img, ezeket kigyűjtöd.

    Itt lehet akár két lehetőség is
    - Megszámolod mennyi van, majd feliratkozol a képek load és error eseményeire és amikor bármelyik bekövetkezik, akkor kivonsz egyet a számlálóból, ha elérted a nullát, akkor elrejted a spinnert.

    - Vagy a képeket beburkolod egy-egy Promise-ba a resolve/reject a kép load és error eseményeire következik be. Bevárod az összes Promise-t és elrejted a spinnert.

    ha van egy images nevű tömböd, a képekkel, abból így lesz egy promise lista:
    const imagePromises = images.map(image =>
    new Promise((resolve, reject) => {
            image.onload = () => {
            console.debug('image loaded', image);
              resolve(image);
            };
            image.onerror = () => {
            console.error('image not loaded', image);
              reject(image);
            };
          }));

    Köszönöm az ötletet és a részletes választ! :)

  • disy68
    aktív tag

    Ha már feljött a window load event témája:

    Az oldalamon infinite scroll-lal töltöm be a tartalmat. Egyetlen egy oldal, ahol görgetéssel jön az újabb és újabb tartalom.
    Amikor betölt az oldal, ott meg tudom jeleníteni a töltő ikont addig, amíg az oldal teljesen be nem tölt.
    document.readyState === "complete" vagy akár a window.onload is. (A logból és a leírásból látom, hogy a window.onload adja a pontosabb állapotot, de ez mindegy is most.)

    document.onreadystatechange = function() { 
        if (document.readyState !== "complete") { 
            spinnerShowHideToggle("spinnerShow");
        } else { 
            spinnerShowHideToggle("spinnerHide");
        } 
    };

    A gondom az, hogy mivel ugye az oldal maga már betöltött, ezért ahogy folyamatosan fűzöm hozzá az újabb és újabb tartalmakat, az már nem számít bele az oldal betöltésébe, így a fentieket egyáltalán nem triggereli.

    Hogyan tudom az így pluszban hozzá fűzött tartalmaknál is megjeleníteni a töltő ikont addig, amíg az elemekhez tartozó képeket be nem tölti teljesen?

    Van egy sablon html feed_item, azt tölti fel a szükséges adatokkal minden új elemnél újra és újra. Ezeket az img tageket kellene valahogy figyelnem? Vagy mi ennek a jó módja?
    Vagy van valami event, amit lehetne figyelni?

    Köszi!

    Amikor lekéred az új adatot, amivel bővíted az oldalt, akkor megjeleníted a spinnert. Amikor betöltött az adat, akkor berakod a DOM-ba, ahova annak kerülnie kell.

    Miután ez megvan, akkor ahova került az új tartalom, megnézed a tartalomban van-e új img, ezeket kigyűjtöd.

    Itt lehet akár két lehetőség is
    - Megszámolod mennyi van, majd feliratkozol a képek load és error eseményeire és amikor bármelyik bekövetkezik, akkor kivonsz egyet a számlálóból, ha elérted a nullát, akkor elrejted a spinnert.

    - Vagy a képeket beburkolod egy-egy Promise-ba a resolve/reject a kép load és error eseményeire következik be. Bevárod az összes Promise-t és elrejted a spinnert.

    ha van egy images nevű tömböd, a képekkel, abból így lesz egy promise lista:
    const imagePromises = images.map(image =>
    new Promise((resolve, reject) => {
            image.onload = () => {
            console.debug('image loaded', image);
              resolve(image);
            };
            image.onerror = () => {
            console.error('image not loaded', image);
              reject(image);
            };
          }));

  • Taci
    addikt

    Ha már feljött a window load event témája:

    Az oldalamon infinite scroll-lal töltöm be a tartalmat. Egyetlen egy oldal, ahol görgetéssel jön az újabb és újabb tartalom.
    Amikor betölt az oldal, ott meg tudom jeleníteni a töltő ikont addig, amíg az oldal teljesen be nem tölt.
    document.readyState === "complete" vagy akár a window.onload is. (A logból és a leírásból látom, hogy a window.onload adja a pontosabb állapotot, de ez mindegy is most.)

    document.onreadystatechange = function() { 
        if (document.readyState !== "complete") { 
            spinnerShowHideToggle("spinnerShow");
        } else { 
            spinnerShowHideToggle("spinnerHide");
        } 
    };

    A gondom az, hogy mivel ugye az oldal maga már betöltött, ezért ahogy folyamatosan fűzöm hozzá az újabb és újabb tartalmakat, az már nem számít bele az oldal betöltésébe, így a fentieket egyáltalán nem triggereli.

    Hogyan tudom az így pluszban hozzá fűzött tartalmaknál is megjeleníteni a töltő ikont addig, amíg az elemekhez tartozó képeket be nem tölti teljesen?

    Van egy sablon html feed_item, azt tölti fel a szükséges adatokkal minden új elemnél újra és újra. Ezeket az img tageket kellene valahogy figyelnem? Vagy mi ennek a jó módja?
    Vagy van valami event, amit lehetne figyelni?

    Köszi!

  • coco2
    őstag

    Emberek, el lehet valahogy érni hogy ez a script működjön? Csak így lehet, hogy a script a detektálni kívánt elem előtt van. Vagy egyetleg valami más megoldás erre? A sorrendnek muszály ennek lennie.

    <script>
    document.getElementById("box").innerHTML ="Hello";
    </script>

    <div id="box" style="display:inline-block;width:90%;height:50px;text-align:center;color:black;">
    </div>

    Azt a scriptet függvénybe teszed bele. A függvényre a window.onload eventről hívsz rá.

  • Jim-Y
    veterán

    Emberek, el lehet valahogy érni hogy ez a script működjön? Csak így lehet, hogy a script a detektálni kívánt elem előtt van. Vagy egyetleg valami más megoldás erre? A sorrendnek muszály ennek lennie.

    <script>
    document.getElementById("box").innerHTML ="Hello";
    </script>

    <div id="box" style="display:inline-block;width:90%;height:50px;text-align:center;color:black;">
    </div>

  • kw3v865
    senior tag

    <!DOCTYPE html>
    <html>
      <head>
        <meta
          name="viewport"
          content="initial-scale=1,maximum-scale=1,user-scalable=no"
        />
        <link rel="stylesheet" href="maplibre-gl.css" />
        <style>
          #map {
            position: absolute;
            top: 0;
            bottom: 0;
            width: 100%;
          }
        </style>
      </head>
      <body>
        <div id="map"></div>
        <script type="module">
            import { Map, GeolocateControl } from './maplibre-gl.js';
            const mapTilerKey = "get_your_own_OpIi9ZULNHzrESv6T2vL";  // https://cloud.maptiler.com/account/keys/
            const map = new Map({
                container: "map",
                style: `https://api.maptiler.com/maps/hybrid/style.json?key=${mapTilerKey}`,
                center: [1, 15],
                zoom: 3
            });
            map.addControl(
                new GeolocateControl({
                    positionOptions: {
                        enableHighAccuracy: true
                    }
                })
            );
        </script>
      </body>
    </html>

    Innen lehúzhatod a css-t: [link]
    Ez meg a js: [link]

    Nem egyszerű megoldás, de ez a lib eléggé friss még. Majd alakul.

    Tökéletes, köszönöm szépen! Pont erre a JS-re volt szükségem.

  • Chrystall
    senior tag

    Emberek, el lehet valahogy érni hogy ez a script működjön? Csak így lehet, hogy a script a detektálni kívánt elem előtt van. Vagy egyetleg valami más megoldás erre? A sorrendnek muszály ennek lennie.

    <script>
    document.getElementById("box").innerHTML ="Hello";
    </script>

    <div id="box" style="display:inline-block;width:90%;height:50px;text-align:center;color:black;">
    </div>

  • martonx
    veterán

    Sziasztok!

    Továbra is nagyon kezdő vagyok (vagyis újrakezdő, több mint 10 éve tanultam kezdő szinten a nyelvet), ezért lehet, hogy hülye kérdés: adott egy GitHubos JS függvénykönyvtár, amit használni szeretnék teljesen offline módon, magyarul le akarom tölteni. Konkrétan erről van szó: https://www.skypack.dev/view/maplibre-gl
    Itt egy példa alkalmazás: https://codepen.io/klokan/pen/WNoZRyx

    Régebben mindig úgy csináltam, hogy normálisan hivatkoztam bármely JS függvénykönyvtárra a HTML-ből így, aztán ha kellett, letöltöttem a webszerveremre:
      <script src='valami.js'></script>
    Ez a mostanában népszerű import-os megoldás számomra teljesen új. A célom az lenne, hogy egyben letöltsem az egészet a webszerveremre, és behivatkozzam a klasszikus módon. Azonban itt nem tálok ilyen lehetőséget, mert oké, hogy fenn van minden az src könyvtárban, de nem lehet ezt a hagyományos módon, egyben elérni? Tehát "ömlesztve" egy fájlban sehol nem találom. Megjegyzem, ezt más egyéb open-source JS-nél is tapasztalom mostanában.

    import *-gal elvileg hozzáférek az egészhez, de nekem "normálisan" kellene, egy fájlba kiírni.

    Tudtok esetleg erre valami jól bevált megoldást?

    ES6 module syntax-al kell megírnod a javascriptedet, és valamilyen csomagolóval compile-olni a kimenet javascriptet a cégén. PL. webpack erre a legelterjedtebb.
    Elsőre zavarónak hathat, hogy compile-olni kell a javascriptet, de ha belejössz, akkor már tök természetes lesz, miközben van egy csomó előnye ennek a megközelítésnek.

  • Böngésző cache clear megvolt?

    Igen, már megvolt az is, semmi.
    Közben megnéztem lányom gépén ami fent van az emeleten és wifin csatlakozik a routerhez, ugyan ez a jelenség. Pedig már az összes lan eszközt újraindítottam.

  • nevemfel
    senior tag

    Sziasztok!

    Továbra is nagyon kezdő vagyok (vagyis újrakezdő, több mint 10 éve tanultam kezdő szinten a nyelvet), ezért lehet, hogy hülye kérdés: adott egy GitHubos JS függvénykönyvtár, amit használni szeretnék teljesen offline módon, magyarul le akarom tölteni. Konkrétan erről van szó: https://www.skypack.dev/view/maplibre-gl
    Itt egy példa alkalmazás: https://codepen.io/klokan/pen/WNoZRyx

    Régebben mindig úgy csináltam, hogy normálisan hivatkoztam bármely JS függvénykönyvtárra a HTML-ből így, aztán ha kellett, letöltöttem a webszerveremre:
      <script src='valami.js'></script>
    Ez a mostanában népszerű import-os megoldás számomra teljesen új. A célom az lenne, hogy egyben letöltsem az egészet a webszerveremre, és behivatkozzam a klasszikus módon. Azonban itt nem tálok ilyen lehetőséget, mert oké, hogy fenn van minden az src könyvtárban, de nem lehet ezt a hagyományos módon, egyben elérni? Tehát "ömlesztve" egy fájlban sehol nem találom. Megjegyzem, ezt más egyéb open-source JS-nél is tapasztalom mostanában.

    import *-gal elvileg hozzáférek az egészhez, de nekem "normálisan" kellene, egy fájlba kiírni.

    Tudtok esetleg erre valami jól bevált megoldást?

    <!DOCTYPE html>
    <html>
      <head>
        <meta
          name="viewport"
          content="initial-scale=1,maximum-scale=1,user-scalable=no"
        />
        <link rel="stylesheet" href="maplibre-gl.css" />
        <style>
          #map {
            position: absolute;
            top: 0;
            bottom: 0;
            width: 100%;
          }
        </style>
      </head>
      <body>
        <div id="map"></div>
        <script type="module">
            import { Map, GeolocateControl } from './maplibre-gl.js';
            const mapTilerKey = "get_your_own_OpIi9ZULNHzrESv6T2vL";  // https://cloud.maptiler.com/account/keys/
            const map = new Map({
                container: "map",
                style: `https://api.maptiler.com/maps/hybrid/style.json?key=${mapTilerKey}`,
                center: [1, 15],
                zoom: 3
            });
            map.addControl(
                new GeolocateControl({
                    positionOptions: {
                        enableHighAccuracy: true
                    }
                })
            );
        </script>
      </body>
    </html>

    Innen lehúzhatod a css-t: [link]
    Ez meg a js: [link]

    Nem egyszerű megoldás, de ez a lib eléggé friss még. Majd alakul.

  • kw3v865
    senior tag

    Amit hirtelen találtam arról az importról, hogy a browser fér hozzá az anyaghoz, és előkészíti neked böngésző kiegészítésként az erőforrásait. Magát a file-t te nem kapod meg. Gyaníthatóan licencelési kérdés van mögötte. Tényleg vicces, hogy képesek voltak ilyesmit is fejleszteni.

    Nyilt forráskódú a cucc, tehát nem hiszem, hogy licenszelési oka van. Mindenesetre bosszantó a dolog, hogy nem tudom offline használni...

  • Silεncε
    őstag

    Sziasztok!
    SSL telepítés óta nem jön be az oldalam, csak az én gépemen firefox, chrome, opera böngészővel. Explorerrel behozza. Az én gépemen kívül mindenkinek működik az oldal.

    A firefox konzol ezt írja
    [Exception... "Favicon at "https://"WEBOLDALAM.hu"/favicon.ico" failed to load: Forbidden." nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource:///modules/FaviconLoader.jsm :: onStopRequest :: line 253" data: no]

    Tud valaki segíteni, hogy ne kelljen újra raknom a windowst?

    Böngésző cache clear megvolt?

  • Sziasztok!
    SSL telepítés óta nem jön be az oldalam, csak az én gépemen firefox, chrome, opera böngészővel. Explorerrel behozza. Az én gépemen kívül mindenkinek működik az oldal.

    A firefox konzol ezt írja
    [Exception... "Favicon at "https://"WEBOLDALAM.hu"/favicon.ico" failed to load: Forbidden." nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource:///modules/FaviconLoader.jsm :: onStopRequest :: line 253" data: no]

    Tud valaki segíteni, hogy ne kelljen újra raknom a windowst?

  • coco2
    őstag

    Sziasztok!

    Továbra is nagyon kezdő vagyok (vagyis újrakezdő, több mint 10 éve tanultam kezdő szinten a nyelvet), ezért lehet, hogy hülye kérdés: adott egy GitHubos JS függvénykönyvtár, amit használni szeretnék teljesen offline módon, magyarul le akarom tölteni. Konkrétan erről van szó: https://www.skypack.dev/view/maplibre-gl
    Itt egy példa alkalmazás: https://codepen.io/klokan/pen/WNoZRyx

    Régebben mindig úgy csináltam, hogy normálisan hivatkoztam bármely JS függvénykönyvtárra a HTML-ből így, aztán ha kellett, letöltöttem a webszerveremre:
      <script src='valami.js'></script>
    Ez a mostanában népszerű import-os megoldás számomra teljesen új. A célom az lenne, hogy egyben letöltsem az egészet a webszerveremre, és behivatkozzam a klasszikus módon. Azonban itt nem tálok ilyen lehetőséget, mert oké, hogy fenn van minden az src könyvtárban, de nem lehet ezt a hagyományos módon, egyben elérni? Tehát "ömlesztve" egy fájlban sehol nem találom. Megjegyzem, ezt más egyéb open-source JS-nél is tapasztalom mostanában.

    import *-gal elvileg hozzáférek az egészhez, de nekem "normálisan" kellene, egy fájlba kiírni.

    Tudtok esetleg erre valami jól bevált megoldást?

    Amit hirtelen találtam arról az importról, hogy a browser fér hozzá az anyaghoz, és előkészíti neked böngésző kiegészítésként az erőforrásait. Magát a file-t te nem kapod meg. Gyaníthatóan licencelési kérdés van mögötte. Tényleg vicces, hogy képesek voltak ilyesmit is fejleszteni.

  • kw3v865
    senior tag

    Sziasztok!

    Továbra is nagyon kezdő vagyok (vagyis újrakezdő, több mint 10 éve tanultam kezdő szinten a nyelvet), ezért lehet, hogy hülye kérdés: adott egy GitHubos JS függvénykönyvtár, amit használni szeretnék teljesen offline módon, magyarul le akarom tölteni. Konkrétan erről van szó: https://www.skypack.dev/view/maplibre-gl
    Itt egy példa alkalmazás: https://codepen.io/klokan/pen/WNoZRyx

    Régebben mindig úgy csináltam, hogy normálisan hivatkoztam bármely JS függvénykönyvtárra a HTML-ből így, aztán ha kellett, letöltöttem a webszerveremre:
      <script src='valami.js'></script>
    Ez a mostanában népszerű import-os megoldás számomra teljesen új. A célom az lenne, hogy egyben letöltsem az egészet a webszerveremre, és behivatkozzam a klasszikus módon. Azonban itt nem tálok ilyen lehetőséget, mert oké, hogy fenn van minden az src könyvtárban, de nem lehet ezt a hagyományos módon, egyben elérni? Tehát "ömlesztve" egy fájlban sehol nem találom. Megjegyzem, ezt más egyéb open-source JS-nél is tapasztalom mostanában.

    import *-gal elvileg hozzáférek az egészhez, de nekem "normálisan" kellene, egy fájlba kiírni.

    Tudtok esetleg erre valami jól bevált megoldást?

  • coco2
    őstag

    Sziasztok!

    Az lenne a kérdésem, hogy ha a Weboldalamon használnék Window localStorage-t, az Cookie-nek számítana? Úgy értem, hogy létrejönne-e Cookie a felhasználó gépén?

    Előre is köszönöm a választ.

    Nem cookie-t hoz létre, hanem adat file-t. Korlátos mérete van, szóval csak valami személyi cucc fér bele. 5 megára számíthatsz, többre nem. Adatkezelési tájékoztatót írni róla alkalmasint jogi rémálom, ha oda személyes adatokat pakolnál. Rendesen csúnyán fog kinézni adatbiztonsági kockázatként.

  • Jim-Y
    veterán

    Sziasztok!

    Az lenne a kérdésem, hogy ha a Weboldalamon használnék Window localStorage-t, az Cookie-nek számítana? Úgy értem, hogy létrejönne-e Cookie a felhasználó gépén?

    Előre is köszönöm a választ.

    Nem, a ketto ket kulon dolog ket kulon dologra is valo.

  • Mr. Y
    őstag

    Szia!

    A kettő két különböző dolog. Ergo a localStorage nyilván nem fog Cookie-t létrehozni, ahogy a Cookie se hoz létre localStorage-ot :D
    Légyszi olvass utánuk, most még arra is lusta vagyok, hogy egy Let me google it for you linket ide dobjak :D

    Köszönöm a válaszokat. Utána olvastam, csak zavaros volt kicsit számomra, azért is kérdeztem.

  • martonx
    veterán

    Sziasztok!

    Az lenne a kérdésem, hogy ha a Weboldalamon használnék Window localStorage-t, az Cookie-nek számítana? Úgy értem, hogy létrejönne-e Cookie a felhasználó gépén?

    Előre is köszönöm a választ.

    Szia!

    A kettő két különböző dolog. Ergo a localStorage nyilván nem fog Cookie-t létrehozni, ahogy a Cookie se hoz létre localStorage-ot :D
    Légyszi olvass utánuk, most még arra is lusta vagyok, hogy egy Let me google it for you linket ide dobjak :D

  • Taci
    addikt

    Sziasztok!

    Az lenne a kérdésem, hogy ha a Weboldalamon használnék Window localStorage-t, az Cookie-nek számítana? Úgy értem, hogy létrejönne-e Cookie a felhasználó gépén?

    Előre is köszönöm a választ.

    Szia!

    Szerintem nem. Ahogy én állok a saját lapommal, egyelőre még csak a local storage-ot használom, cookie-kig még nem jutottam. És a böngészők is külön kezelik őket:

  • Mr. Y
    őstag

    Sziasztok!

    Az lenne a kérdésem, hogy ha a Weboldalamon használnék Window localStorage-t, az Cookie-nek számítana? Úgy értem, hogy létrejönne-e Cookie a felhasználó gépén?

    Előre is köszönöm a választ.

  • nevemfel
    senior tag

    Hát, ha mindenáron típust akarunk adni, akkor jön be a képbe a Typescript.

    Így van. Vagy a closure, ahol az adatszerkezetet elrejtjük, és csak metódusokon keresztül engedjük manipulálni, amikben implementáljuk a nekünk megfelelő típusellenőrzéseket.

    Silence: My bad. Nem akartam hosszú lére ereszteni a témát.

  • Silεncε
    őstag

    Csak kiigazítottam a szintaktikát. Javascriptben változónak nyilván nem tudsz adni típust.

    Jó, de ezt a kérdező nem biztos, hogy tudja :B

  • martonx
    veterán

    Csak kiigazítottam a szintaktikát. Javascriptben változónak nyilván nem tudsz adni típust.

    Hát, ha mindenáron típust akarunk adni, akkor jön be a képbe a Typescript.

  • nevemfel
    senior tag

    Ez nem azt csinálja, amit a kérdező gondol: itt létrehozol benne egy üres objectet, a megadott paraméterekkel, nem pedig a formátumát adod meg. Ez egyrészt jelenthet gondot amikor iterálni akarsz rajta (lesz egy üres, semmire nem jó object) másrészt pont azt a hatást nem fogja elérni, amit a kérdező szeretett volna (nem lesz "kényszerítve", hogy minden object így nézzen ki)

    Csak kiigazítottam a szintaktikát. Javascriptben változónak nyilván nem tudsz adni típust.

  • Silεncε
    őstag

    Ilyesmire gondolsz?

    var objArray = [
        {
          prop1: [],
          prop2: []
        }
    ];

    Ez nem azt csinálja, amit a kérdező gondol: itt létrehozol benne egy üres objectet, a megadott paraméterekkel, nem pedig a formátumát adod meg. Ez egyrészt jelenthet gondot amikor iterálni akarsz rajta (lesz egy üres, semmire nem jó object) másrészt pont azt a hatást nem fogja elérni, amit a kérdező szeretett volna (nem lesz "kényszerítve", hogy minden object így nézzen ki)

  • kw3v865
    senior tag

    Ilyesmire gondolsz?

    var objArray = [
        {
          prop1: [],
          prop2: []
        }
    ];

    Működik , szuper! Pont erre gondoltam, a push-olás is megy. Köszönöm mindkettőtöknek a gyors segítséget:).

  • nevemfel
    senior tag

    Sziasztok!

    Kezdő vagyok JS-ben, és a következő problémára keresem a megoldást már egy ideje:
    a célom, hogy létrehozzak egy olyan tömböt, amelynek van n db eleme, és mindegyikhez tartozik 2 property, de úgy, hogy mindkét propertryje egy-egy tömb. Továbbá, a létrehozásakor teljesen üres, csak a struktúrája jön létr, később töltöm majd fel.
    Nagyjából így: var objArray = {prop1[], prop2[]}[]

    Természetesen, ez szintaktikailag nem jó. Szerintetek hogyan lehetne ezt szépen megvalósítani?

    Ilyesmire gondolsz?

    var objArray = [
        {
          prop1: [],
          prop2: []
        }
    ];

  • Silεncε
    őstag

    Sziasztok!

    Kezdő vagyok JS-ben, és a következő problémára keresem a megoldást már egy ideje:
    a célom, hogy létrehozzak egy olyan tömböt, amelynek van n db eleme, és mindegyikhez tartozik 2 property, de úgy, hogy mindkét propertryje egy-egy tömb. Továbbá, a létrehozásakor teljesen üres, csak a struktúrája jön létr, később töltöm majd fel.
    Nagyjából így: var objArray = {prop1[], prop2[]}[]

    Természetesen, ez szintaktikailag nem jó. Szerintetek hogyan lehetne ezt szépen megvalósítani?

    JS-ben ezt neked nem kell külön megadnod. Csinálsz egy sima tömböt, (var array = []) aztán szépen pusholhatod bele az objecteket (jelen esetben {prop1: "sth", prop2: "sth"}

  • kw3v865
    senior tag

    Sziasztok!

    Kezdő vagyok JS-ben, és a következő problémára keresem a megoldást már egy ideje:
    a célom, hogy létrehozzak egy olyan tömböt, amelynek van n db eleme, és mindegyikhez tartozik 2 property, de úgy, hogy mindkét propertryje egy-egy tömb. Továbbá, a létrehozásakor teljesen üres, csak a struktúrája jön létr, később töltöm majd fel.
    Nagyjából így: var objArray = {prop1[], prop2[]}[]

    Természetesen, ez szintaktikailag nem jó. Szerintetek hogyan lehetne ezt szépen megvalósítani?

  • coco2
    őstag

    Ez a fajta asszociatív tömb nem létezik JS-ben, a legközelebbi az egy objektum, aminek string paraméterei vannak (ahogy át is jön json-ban). Ez nem tömbbe kell beleerőszakolni, hanem meg kell tartani objektumnak és stingként kell hivatkozni az elemekre:
    const json = '{"0":0, "5":0}';
    const obj = JSON.parse(json);
    console.log(obj[0]);
    console.log(obj[5]);
    console.log(obj);
    obj[8] = 1
    console.log(JSON.stringify(obj));
    > 0
    > 0
    > Object { 0: 0, 5: 0 }
    > "{"0":0,"5":0,"8":1}"

    A számból álló kulcsokat tényleg nem szereti JS, mert az objektum kulcsai csak stringek lehetnek.

    Jó lesz, köszönöm :R

  • sztanozs
    veterán

    Sziasztok!

    Akadt egy szemléleti problémám, és nem igazán tudom, mit kezdjek vele.

    Google Chrome böngészőben futna javascript (weboldal).

    Php alatt vannak asszociatív tömbjeim. Azokat kell átküldenem javascript alá. Szóval csinálok json-t, lesz belőle mondjuk ilyesmi: {"0":"0","5":"0"}. Javascript alatt fogadva, és visszaküldéshez json stringre alakítva (window.JSON.stringify) ugyan az így néz ki: [0,null,null,null,null,0].

    A problémám, hogy a kulcsok nem ilyen 0 meg 5, hanem mondjuk "134233184674" - 64 bites alkalmazás-unique integerek. Kicsit aggódom miatta, hogy azokból json-t csinálok javascript alól php alá visszaküldeni, a sok "null" miatt lepusztul minden.

    Akár objektumot is csinálhatnék tömb helyett, de a javascript nagyon nem szereti a számokból álló kulcsokat. A php-nak furcsa módon semmi baja vele.

    Eddig ami workaround-ot találni tudtam, hogy valami betűt rakok elé a számoknak, mondjuk 5 helyett "x5", de így cudar ronda. Ezt vissza is kell majd alakítanom, és milliószámra darabolhatom a stringeket.

    A problémám lényege, hogy javascript alatt a tömbök üres indexei egyáltalán léteznek. Van rá valami okosság elmagyarázni a javascriptnek, hogy legyen szíves számokból álló indexekkel asszociatív tömböt építsen?

    Ez a fajta asszociatív tömb nem létezik JS-ben, a legközelebbi az egy objektum, aminek string paraméterei vannak (ahogy át is jön json-ban). Ez nem tömbbe kell beleerőszakolni, hanem meg kell tartani objektumnak és stingként kell hivatkozni az elemekre:
    const json = '{"0":0, "5":0}';
    const obj = JSON.parse(json);
    console.log(obj[0]);
    console.log(obj[5]);
    console.log(obj);
    obj[8] = 1
    console.log(JSON.stringify(obj));
    > 0
    > 0
    > Object { 0: 0, 5: 0 }
    > "{"0":0,"5":0,"8":1}"

    A számból álló kulcsokat tényleg nem szereti JS, mert az objektum kulcsai csak stringek lehetnek.

Új hozzászólás Aktív témák

Hirdetés