Autor | Zpráva | ||
---|---|---|---|
Hanour Profil |
Programuji web v PHP (XHTML+CSS), uživatelé si po přihlášení sami mohou nastavit barevný vzhled (skin) stránek (pozadí, text, rámečky tabulek, odkazy…). Samozřejmě dokážu naprogramovat ve dvou krocích v PHP - 1. ve formuláři nastaví barvy jednotlivým položkám a uloží. 2. zobrazí se výsledná stránka, buď je se vzhledem spokojen nebo se vrací zpět na formulář a mění barevný vzhled.
Rád bych ale toto sloučil do jednoho kroku, aby hned při nastavování barev ve formuláři (má pro každou položku pomocí roletkového menu SELECT-OPTION k dispozici 216 tzv. bezpečných barev) tak, aby hned po jejím nastavení ve formuláři na téže stránce byla malá ukázka/náhled (ať už přímo v kódu samotné stránky s formulářem či na jiné stránce vložené vnořeným rámem IFRAME), takže jakmile změní barvu pro text (tedy jen překlikne na jinou barvu v roletkovém menu), text v náhledu se změní, pro pozadí a další prvky taktéž. Až je spokojen s nastavením, které takto on-line vidí v náhledu, uloží jej. Je tohohle schopen JavaScript? Nevíte někdo o nějakém hotovém scriptu ke stažení - zřejmě to nebude úplně triviální záležitost. Jsem stran JS absolutní začátečník, scripty výhradně přebírám. Díky za případný tip. |
||
Radek Cvek Profil |
#2 · Zasláno: 2. 1. 2011, 04:10:56
<script language="JavaScript" type="text/javascript"> function zmenaStylu(co, zmena) { switch (co) { case 'color': document.getElementById('uzivatel').style.color=zmena; break; case 'backgroundColor': document.getElementById('uzivatel').style.backgroundColor=zmena; break; } } </script> <div id="uzivatel"> <h1>Nadpis</h1> <p>Quisque volutpat est quis neque luctus sit amet sollicitudin risus molestie. Nullam vel velit vel mi pharetra adipiscing. Nullam commodo egestas nunc, vitae condimentum erat lobortis sed. Cras imperdiet ipsum et augue fringilla id dictum tortor mollis. Sed luctus eleifend nibh, sit amet imperdiet mauris convallis vel. Ut id dui sapien. Aenean in nunc non nibh aliquet faucibus. Duis faucibus massa in justo suscipit cursus. Fusce in ipsum sed tortor aliquam iaculis eu vitae dui. Aliquam iaculis feugiat euismod. </p> </div> <form name="formular"> <select onChange="zmenaStylu('color', this.value);"> <option value="red">cervene pismo</option> <option value="blue">modre pismo</option> </select> <select onChange="zmenaStylu('backgroundColor', this.value);"> <option value="yellow">zlute pozadi</option> <option value="white">bile pozadi</option> </select> </form> |
||
Chamurappi Profil |
#3 · Zasláno: 2. 1. 2011, 11:52:15
Reaguji na Hanoura:
„scripty výhradně přebírám“ Zadání je tak specifické, že nejspíš žádné hotové řešení nenajdeš a budeš se muset těch pár základů naučit. Každou dílčí věc, kterou měníš v PHP, budeš muset měnit i v JS. Připadá mi, že nabízíš zbytečně rozmanité nastavování. To si má každý uživatel nastavovat jen pro své oko, nebo je tím uživatelem správce webu, který si ho uzpůsobuje pro ostatní? Kdybys dal na výběr dvacet různých barevných sestav, měl bys to jednodušší — v PHP bys jen připsal class k <html> , v JS bys přepnul document.documentElement.className a bylo by hotovo, o zbytek by se postaral stylopis.
Reaguji na Radka Cveka: Ten switch tam asi nebude potřeba, hm?
document.getElementById('uzivatel').style[co] = zmena; |
||
Radek Cvek Profil |
#4 · Zasláno: 2. 1. 2011, 12:11:23
Chamurappi:
Pěkně, teď je celá funkce na jeden řádek - mě se tam ta proměná nedařila dostat a teď vidím, jak je to jednoduché. |
||
peta Profil |
#5 · Zasláno: 4. 1. 2011, 11:10:53
Nebylo by jednodussi zmenit className?
|
||
Časová prodleva: 13 let
|
0