| Autor | Zpráva | ||
|---|---|---|---|
| arcadosi Profil |
#1 · Zasláno: 1. 3. 2013, 22:56:41
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 |
#2 · Zasláno: 2. 3. 2013, 01:37:36
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 |
#3 · Zasláno: 2. 3. 2013, 09:21:05
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 |
#4 · Zasláno: 2. 3. 2013, 10:12:28
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 |
#5 · Zasláno: 2. 3. 2013, 13:02:53
Nebo dvojcifernost zajistit takto:
var blue = 10;
var hex = ('00' + blue.toString(16)).slice(-2); //0c |
||
| petr 6 Profil |
#6 · Zasláno: 2. 3. 2013, 13:34:28
Nebo se vykašlat na dvojcifernost a převody a zapsat to pomocí
style="color: rgb(0,50,150);" |
||
|
Časová prodleva: 14 let
|
|||
0