Autor Zpráva
arcadosi
Profil
Ucim sa JavaScript a pre vritie do pamati si robim rozne pokusy, jednym z nich bol:
<script type="text/javascript">
var i = 0;
while(i <= 255){
    document.write("<font color=\"#0000" + i.toString(16) + "\">" + i.toString(16) + "</font>");
    i += 5;
}
</script>

Aby boli cisla kompatibilne s RBG, kde pripadaju na kazdu farbu 2 miesta, tak som to dal do 16tkovej sustavy, no cuduj sa svete, pri tretom opakovani, ked to z 15tky meni na F to nejako zblbne a je to hned modre...preco ?
Mam teoriu... farba="#(1stlpec2stlpec)(1stlpec2stlpec)(1stlpec2stlpec)" pricom kedze menim az tretiu zatvorku sa stane to, ze z cisla tvoriaceho 2 stlpce (1 5) sa stane jedno cislo 15, to sa premeni na F, obsadi poziciu prveho stlpca a aby bolo cislo farby kompletne priradi k nemu HTML cislo 0, takze je to F 0, cize 240?
Sir Tom
Profil
arcadosi:
Protože hodnoty (0).toString(16), (5).toString(16), (10).toString(16), atd. vrací jeden znak. V tomto případě tedy hodnota atributu color je určena pouze 5 znaky. Na to bys ale přišel i sám, kdyby sis otevřel vygenerovaný zdroj v prohlížeči.

<script type="text/javascript">
var i = 0;
while(i <= 255){
        var color = i.toString(16);
        if(color.length==1){
            color = "00000"+color;
        }else{
            color = "0000"+color;
        }
    document.write("<font color=\"#" + color + "\">" + color + "</font> ");
    i += 5;
}
</script>
arcadosi
Profil
A rozmyslal som, ze ako si pozriet na to co scripty vytvaraju, no nevedel som. Ale prave som to nasiel, takze uz vidim to co som potreboval...dakujem ;-)
Chamurappi
Profil
Reaguji na arcadosiho:
ze ako si pozriet na to co scripty vytvaraju
Třeba si to vypsat funkcí alert.

Dvojcifernost hexadecimálního čísla jde v tomto případě zajistit i takhle:
var modrá = (i + 256).toString(16).substr(1);
1Pupik1989
Profil
Nebo dvojcifernost zajistit takto:

var blue = 10;
var hex = ('00' + blue.toString(16)).slice(-2); //0c
petr 6
Profil
Nebo se vykašlat na dvojcifernost a převody a zapsat to pomocí
style="color: rgb(0,50,150);"

Vaše odpověď

Mohlo by se hodit

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

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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