JavaScript által generált HTML-nek stílus CSS-sel
Üdv!
Van egy javascriptes kódrészletem, ami egy javascript menünek megadja a stílusát. A kódrészlet a következő:Ezt szertném én úgy megcsinálni, hogy az aktuális stílust, pl. a
Köszönöm mindenkinek az infót.
■ Van egy javascriptes kódrészletem, ami egy javascript menünek megadja a stílusát. A kódrészlet a következő:
YOffset=150;
XOffset=0;
staticYOffset=30;
slideSpeed=20
waitTime=100;
menuBGColor="black";
menuIsStatic="yes";
menuWidth=150;
menuCols=2;
hdrFontFamily="verdana";
hdrFontSize="2";
hdrFontColor="white";
hdrBGColor="#170088";
hdrAlign="left";
hdrVAlign="center";
hdrHeight="15";
linkFontFamily="Verdana";
linkFontSize="2";
linkBGColor="white";
linkOverBGColor="#FFFF99";
linkTarget="_top";
linkAlign="Left";
barBGColor="#444444";
barFontFamily="Verdana";
barFontSize="2";
barFontColor="white";
barVAlign="center";
barWidth=20;
barText="SIDE MENU";
'hdrBGColor'
a .hdrBGColor
értékkel lehessen stíluslapba (CSS-be) beálítani. Ezt hogyan lehet megoldani, ha lehetséges-e? Talán valahogy a 'this.className'
-el.Köszönöm mindenkinek az infót.
Nincs válasz?
Szvsz türelem...
Délután, estefelé több eséllyel kapsz gyors választ.
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
nem kellene mindent JS-ből csinálni
hdrFontSize
és hasonlók gondolom egy konkrét elem HTML (CSS?) tulajdonságaira képződnek le a menü generáló kódban. Azt kellene csinálni, hogy ahelyett, hogy itt ezzel paraméterezed fel, class neveket adsz a HTML elemeknek, amikre amenu
,link
,hdr
,bar
, stb. nevek utalnak, és annak adsz CSS-ből stílust. Semmiféle JS trükkre nincs szükség.Ezen az oldalon elérhető
http://www.dynamicdrive.com/dynamicindex1/davidmenu.htm
Nézd meg, és aztán adj választ.
Egyébként az a ki kódrészlet nem egy html-nek adja meg a formázásátt, hanem egy másik js-nek, tehát js használatra szükség van.
Ahogy én tudom...
Mert ha valamit ki akarsz rakni a képernyőre, akkor valami ilyesmit kell írogatni:
Js: document.write("<b><i><u>Valami szöveg formázva</u></i></b>");
PHP: echo "<b><i><u>Valami szöveg formázva</u></i></b>";
Szerintem ez a menü is valamilyen TAG-ek között van és ha így van (márpedig szerintem így kell lennie) akkor az a TAG css-el formázható, akár külső fájlból is.
Ha nem így van, akkor valaki okosabb javítson ki.
Tisztelettel: Pécsek Gábor
Megnéztem a 2 fájl-t
Az egyik ssmItems.js --> ebbe írod be a menüpontokat és a formázást és ez adja át az adatokat a másik fájl-nak ssm.js.
Az ssm.js-ben pedig már vannak TAG-ek amiket az átadott változók formáznak.
Csak úgy tudod css fájl-ból megoldani a formázást, hogyha az ssm.js fájlból kitörlöd az össze átadott változót, ami a ssmItems.js-ből megy át.
Amúgy igazam volt, a kimenetet HTML csinálja. Ez egy sor részlet az ssmItems.js-ből:
document.write('<TD BGCOLOR="'+linkBGColor+'"
ha ehelyett ezt írod --> document.write('<TD class="tablazatformazas_a">');
akkor már css fájlból csinálhatod a formázás
persze ahhoz, hogy működjön amit írtam, kell lennie egy css fájlnak benne egy:
TD.tablaformazas_a {}
elemmel és a css fájl-t be kell linkelni mielőtt lefut a Js.
De ahogy végignéztem a menüt létrehozó Js fájl-t elbogarászhatsz vele egy darabig amíg kicseréled a dolgokat. :)))))))
Mindenesetre ha nekiálsz, sok szerencsét
Tisztelettel: Pécsek Gábor
Ez a bejegyzés nagyon
Nos, szvsz
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
Mit értessz normális
CSS-ben nem lehet menüt csinálni
Az ilyen menükkel (amit letöltöttél) szerintem az a baj, hogy vagy úgy használod ahogy van vagy ha megprobálsz rajta alakítani, akkor eljutsz odáig, hogy annyit kell rajta javítani, hogy érdemesebb sajátot csinálni.
Bár ez csak az én vélményem
1. Én maradok ennél az
2. Mi a baja mindenkinek a JS-sel?
buta alkalmazás
Javascript
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
Google nyomosabb indok
A kérdezőnek: A Google ugyanis nem értelmezi a JavaScriptet és nem tudja követni a JavaScript nélkül nem legenerálodó linkeket!
Igaz...
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
Nézz példákat
CSS-sel formázott menük és egy kis segítség az IE-nek, hogy megértse a :hover-t ami a dinamikus menük titka: CSS hover emuláció IE-nek.
stylesheet JS-ből
Ha ragaszkodsz a megoldásodhoz, ez elég az elinduláshoz:
o StyleSheet
o Style
o Rrule
Felhő
Mindenkinek köszönök
Elakadtam!
onmouseout="bgColor=\''+linkBGColor+'\'"
Én így próbáltam:
onmouseout="this.className='linkBGColor'"
Mi a megfejtés?
-----------------------------------------------------------------------------
A másik problémám:
Align
VAlign
Ezeket hogyan állítsam be?
nem teljesen jó
Hmm...
A class nem erre való.
Egy css fájlban meghatározod előre a classok stílusát, és a classokat rendeled utána az elemekhez...
Mellesleg, hogy válaszoljak is:
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
Itt van az eredeti sor:
<TD BGCOLOR="'+linkBGColor+'" onmouseover="bgColor=\''+linkOverBGColor+'\'" onmouseout="bgColor=\''+linkBGColor+'\'" WIDTH="'+ssmItems[i][5]+'px" COLSPAN="'+ssmItems[i][3]+'">
Az elején a BGCOLOR="'+linkBGColor+'" áttírtam CLASS="linkBGColor"-ra, ez muixik.
De ezt hogyan írjam átt: onmouseover="bgColor=\''+linkBGColor+'\'" ?
Ezt próbáltam, de ezt nem fogadta el: onmouseout="this.className='linkBGColor'", mi a megfejtés?
Egyébként meg nem vagyok annyira kezdő, hogy ne tudnám, a stíluslapot csatolni kell, és aktuális értéket, pl. linkBGColor a css-be meg kell határozni.
kezdő, figyelmetlen vagy fáradt?
Én különben menuItem és menuItemHover classneveket használnék, ha már így oldanám meg a táblázat cella hover átszínezést, mint fent írtam a linkBGColor mint osztálynév legalábbis félrevezető.
Értitek a gondomat?
Én így írtam: onmouseout="this.className='linkBGColor'"
A css-ben megadtam a linkBGColor {background-color: #000000;}, de nem működik, ha a css-ben írtam rosszul, akkor mit írjak, de szerintem ez: this.className='linkBGColor'
Nem baj
Nem szégyen, ha nem értesz valamit, az a szégyen, ha a szád nagy, az eszed meg nem nagy...
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
Juj
CSS
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
tömbös adatokkal mi legyen?
Megoldás?
nem a beállítás forma a lényeg
classname hova?
hova kerül?
Ez egy másik kód
stepIn = 50;
stepOut = 100;
autoFade = true;
sloppyClass = true;
macCompat = false;
hexa = new makearray(16);
for(var i = 0; i < 10; i++)
hexa[i] = i;
hexa[10]="a"; hexa[11]="b"; hexa[12]="c";
hexa[13]="d"; hexa[14]="e"; hexa[15]="f";
document.onmouseover = domouseover;
document.onmouseout = domouseout;
fadeColor = dehexize(fadeColor.toLowerCase());
var fadeId = new Array();
function dehexize(Color){
var colorArr = new makearray(3);
for (i=1; i<7; i++){
for (j=0; j<16; j++){
if (Color.charAt(i) == hexa[j]){
if (i%2 !=0)
colorArr[Math.floor((i-1)/2)]=eval(j)*16;
else
colorArr[Math.floor((i-1)/2)]+=eval(j);
}
}
}
return colorArr;
}
function domouseover() {
if(document.all){
var srcElement = event.srcElement;
if ((srcElement.tagName == "A" && autoFade && srcElement.className != "nofade") || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1)) {
if (!srcElement.startColor) {
srcElement.startColor = (srcElement.style.color)? srcElement.style.color: srcElement.currentStyle.color;
srcElement.startColor = dehexize(srcElement.startColor.toLowerCase());
}
var link = (macCompat? srcElement.name: srcElement.uniqueID);
if (link) fade(srcElement.startColor,fadeColor,link,stepIn);
else if (macCompat) alert("Error: Mac Compatility mode enabled, but link has no name.");
}
}
}
function domouseout() {
if (document.all){
var srcElement = event.srcElement;
if ((srcElement.tagName == "A" && autoFade && srcElement.className != "nofade") || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1)) {
var link = (macCompat? srcElement.name: srcElement.uniqueID);
if (link) fade(fadeColor,srcElement.startColor,link,stepIn);
}
}
}
function makearray(n) {
this.length = n;
for(var i = 1; i <= n; i++)
this[i] = 0;
return this;
}
function hex(i) {
if (i < 0)
return "00";
else if (i > 255)
return "ff";
else
return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}
function setColor(r, g, b, element) {
var hr = hex(r); var hg = hex(g); var hb = hex(b);
element.style.color = "#"+hr+hg+hb;
}
function fade(s,e,element,step) {
var sr = s[0]; var sg = s[1]; var sb = s[2];
var er = e[0]; var eg = e[1]; var eb = e[2];
if (fadeId[0] != null && fade[0] != element && eval(fadeId[0])) {
var orig = eval(fadeId[0]);
setColor(orig.startColor[0],orig.startColor[1],orig.startColor[2],orig);
var i = 1;
while(i < fadeId.length) {
clearTimeout(fadeId[i]);
i++;
}
}
for(var i = 0; i <= step; i++) {
fadeId[i+1] = setTimeout("setColor(Math.floor(" +sr+ " *(( " +step+ " - " +i+ " )/ " +step+ " ) + " +er+ " * (" +i+ "/" +
step+ ")),Math.floor(" +sg+ " * (( " +step+ " - " +i+ " )/ " +step+ " ) + " +eg+ " * (" +i+ "/" +step+
")),Math.floor(" +sb+ " * ((" +step+ "-" +i+ ")/" +step+ ") + " +eb+ " * (" +i+ "/" +step+ ")),"+element+");",i*step);
}
fadeId[0] = element;
}
A fadecolor színmeghatározást szeretném kitenni css-be.
Segítsetek!
Próbálgattam ezzel akóddal néhány javasolt golgot, de hiába.
Fontos?
$€£¥$€£¥$€£¥$€£¥$€£¥
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
hát
Csak ismételni tudam magamat...
$ € £ ¥
:-)--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
nem tudom mit vársz...
<Nincs cím>
Tényleg nem gondoltam.