JavaScript ja Elementille taustaan verrattuna käänteinen väri

Anonyymi

Vaikutti että ei olisi kovin yksinkertainen tehtävä. Tuossa alla tuo esimerkki asettaa kaikkien elementtien väriksi punainen. Mutta miten tuo tehtäisiin niin että se piikkaa** elementiltä taustavärin ja asettaa edustalle käänteisen värin.

for (var i = 0; i < document.all.length; i ) {
document.all[i].style.color = "red" }

Kun nyt katsotaan esimerkki, mitä elementtejä tämä jo aiemmin käsitelty esimerkki sisältää ( https://pastebin.com/7AJ6AzdY ), niin voi havaita ettei kaikilla elementeillä ole asetettavissa väriä edustalle eikä taustalle kuten tämän silmukan ajo osoittaa:

for (var i = 0; i < document.all.length; i ) {
console.log(i " => " document.all[i].tagName) }

Ei taida JavaScriptin suoritus katketa, vaikka elementille ei käänteistä väriä pystyisikään asettamaan tai taustaväriä noutamaan.

PS: Ei tarvitse vastata, jos menee hyvin monimutkaiseksi, kuten epäilen.

**piikkaa
Tähän tulisi olla parempi termi, olen tuon juontanut Commodore 64 ajoilta PEEK() funktiosta jolla luettiin muistipaikan sisältö.

8

<50

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Onko tämä sinnepäinkään, ei se ainakaan toimi, niin kuin pitäisi.

      for (var i = 0; i < document.all.length; i ) {
      var BC = document.all[i].style.backgroundColor;
      var FC = document.all[i].style.Color;
      document.all[i].style.color = BC;
      document.all[i].style.background = FC;
      console.log("BC:" BC "FC:" FC);
      }

      • Anonyymi

        Tässä on varmaan joku juttu, kun väriä ei ole erikseen määritelty taustalle, eikä tekstille, niin ei tuo värin poimintakaan onnistu.


    • Anonyymi
      • Anonyymi

        Eli tätä ( document.getElementsByTagName('body')[0].style.backgroundColor; ) ei saa toimimaan.

        getElementsByClassName ja getElementsByTagName ei anna kuin "" kysyipä tausta tai edusta väriä, en ainakaan saanut ulos muuta.

        Joo getElementById(id) näyttää tuottavan tulosta, hyvän esimerkin laitoit. Harmi että se on tehtävä ID:llä, kun tarkoitus on vaihtaa värejä TagName tai ClassName poimintaan perustuen, kun tuota ID:tä ei ole sivulla määritelty. Tuo TagName olisi ollut paras koska se on olemassa aina.


      • Anonyymi
        Anonyymi kirjoitti:

        Eli tätä ( document.getElementsByTagName('body')[0].style.backgroundColor; ) ei saa toimimaan.

        getElementsByClassName ja getElementsByTagName ei anna kuin "" kysyipä tausta tai edusta väriä, en ainakaan saanut ulos muuta.

        Joo getElementById(id) näyttää tuottavan tulosta, hyvän esimerkin laitoit. Harmi että se on tehtävä ID:llä, kun tarkoitus on vaihtaa värejä TagName tai ClassName poimintaan perustuen, kun tuota ID:tä ei ole sivulla määritelty. Tuo TagName olisi ollut paras koska se on olemassa aina.

        Voihan ne valita tagname:nkin mukaan. Luulin, että sen taustavärin ja värin saaminen oli se pääjuttu(?). Tässä tagnamella (p-elementit, jätin id:t niihin css:ää varten):

        https://jsfiddle.net/7ftgvo90/

        Siis, getElementsByTagName () palauttaa kokoelman elementtejä, joille sitten jokaiselle kutsutaan sitä window.getComputedStyle(element):tiä, jotta saadaan sen kyseisen elementin värit selville ja miten ne sitten halutaan muuttaakaan. Tuossa muuten sellainen juttu, joka aluksi aiheutti itselleni ongelman: kun element.style:ä muuttaa, niin ilmeisesti se computed style -oliokin muuttuu, joten siitä on ensin otettava halutut tiedot talteen ja sitten muokattava elementtiä.


      • Anonyymi
        Anonyymi kirjoitti:

        Voihan ne valita tagname:nkin mukaan. Luulin, että sen taustavärin ja värin saaminen oli se pääjuttu(?). Tässä tagnamella (p-elementit, jätin id:t niihin css:ää varten):

        https://jsfiddle.net/7ftgvo90/

        Siis, getElementsByTagName () palauttaa kokoelman elementtejä, joille sitten jokaiselle kutsutaan sitä window.getComputedStyle(element):tiä, jotta saadaan sen kyseisen elementin värit selville ja miten ne sitten halutaan muuttaakaan. Tuossa muuten sellainen juttu, joka aluksi aiheutti itselleni ongelman: kun element.style:ä muuttaa, niin ilmeisesti se computed style -oliokin muuttuu, joten siitä on ensin otettava halutut tiedot talteen ja sitten muokattava elementtiä.

        Joo, tuo oli hyvä, niin kuin sinulla näyttää kaikki olevan. Meni muutama tunti, tuohon värimaailmaan perehtyessä, kun noita koodauksia on monenlaisia. Tuo yllätti että kun värejä ei ole määritelty, niin sieltä saa palautteena ( rgba ) ja ( rgb ), eikä tunnu olevan funktiota jolla värin muuttaisi vertailua varten johonkin yhtäläiseen muotoon. Törmäsin moneen eri esimerkkiin jossa itse on koodattu funktio heksadesimaali muutosta varten. Olipa jopa tapailtu NIMI (red, blue jne.) muunnoksiakin.

        BC = rgba(0, 0, 0, 0) FC = rgb(0, 0, 0)

        Katsotaan nyt missä kohtaa sitä seuraavaksi kompastellaan. Ei mennyt hukkaan tämäkään opiskelupäivä.


    • Anonyymi

      Ota taustaväri ja käännä se bitwice: foregroundColor =~backgroundColor;

    • Anonyymi

      Tässä yksi niistä S24 sivuston helmistä, kiitoksia.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Taasko se show alkaa

      Koo osottaa taas mieltään
      Ikävä
      23
      1575
    2. Miksi ihmeessä nainen seurustelit kanssani joskus

      Olin ruma silloin ja nykyisin vielä rumempi En voi kuin miettiä että miksi Olitko vain rikki edellisestä suhteesta ja ha
      Ikävä
      15
      1414
    3. Minun oma kaivattuni

      Ei ole mikään ilkeä kiusaajatyyppi, vaan sivistynyt ja fiksu sekä ystävällinen ihminen, ja arvostan häntä suuresti. Raka
      Ikävä
      61
      1331
    4. Persut nimittivät kummeli-hahmon valtiosihteeriksi!

      Persujen riveistä löytyi taas uusi törkyturpa valtiosihteeriksi! Jutun perusteella järjenjuoksu on kuin sketsihahmolla.
      Perussuomalaiset
      31
      1305
    5. Onko ministeri Juuso epäkelpo ministerin tehtäviensä hoitamiseen?

      Eikö hänellä ole kompetenttia hoitaa sosiaali- ja terveysministetin toimialalle kuuluvia ministerin tehtäviä?
      Perussuomalaiset
      33
      1258
    6. Pelastakaa Lapset: Netti ei ole turvallinen paikka lapsille - Erätauko-tilaisuus to 25.4.2024

      Netti ei ole turvallinen paikka lapsille, mutta mitä asialle voi vanhempana tehdä? Torstaina 25.4.2024 keskustellaan ne
      Suomi24 Blogi ★
      14
      1186
    7. Tervehdys!

      Sä voit poistaa nää kaikki, mut mä kysyn silti A:lta sen kokemuksia sun käytöksestä eron jälkeen. Btw, miks haluut sabot
      Turku
      64
      1116
    8. Sakarjan kirjan 6. luku

      Jolla korva on, se kuulkoon. Sain profetian 22.4.2023. Sen sisältö oli seuraava: Suomeen tulee nälänhätä niin, että se
      Profetiat
      8
      1116
    9. Elia tulee vielä

      Johannes Kastaja oli Elia, mutta Jeesus sanoi, että Elia tulee vielä. Malakian kirjan profetia Eliasta toteutuu kokonaan
      Helluntailaisuus
      35
      1094
    10. Nellietä Emmaa ja Amandaa stressaa

      Ukkii minnuu Emmaa ja Amandaa stressaa ihan sikana joten voidaanko me koko kolmikko hypätä ukin kainaloon ja syleilyyn k
      Isovanhempien jutut
      6
      1082
    Aihe