1.
Inledning
2. JavaScript och CSS 3. Ändra bakgrundsfärgen 4. Ändra textfärgen 5. Ändra färger dynamiskt 6. Flytta text 7. Z-index 8. Övningar Obs! 1. InledningPå den här sidan berättar jag lite om hur man kan använda JavaScript för att göra stilmallar (stylesheets, ibland även formatmallar). Grunderna i stilmallsspråket, CSS, kan du läsa om på särskilda sidor. Gå dit > Jag vill passa på och säga att jag inte alltid tycker att det är så bra att använda JavaScript för att göra stilmallar. Den främsta anledningen till det är ju att CSS-språket är bättre på det än JavaScript. Koden är också enklare att skriva. I de exempel jag visar här har jag försökt att hitta bra eller informativa användningsområden. Samtliga är också exempel på vad som brukar kallas Dhtml eller "Dynamisk Html. Jag har skrivit lite om det på en särskild sida. Läs mer > Jag försöker nedan visa hur JavaScript kan användas för att öka kraften i stilmallsspråket, snarare än att göra samma sak fast krångligare. 2. JavaScript och CSSMan kan säga att CSS ryms i JavaScript, eftersom i stort sett alla stilmallskoder har en motsvarighet i JavaScript. Det finns böcker och långa dokument om detta och jag tänker som sagt inte fördjupa mig oerhört i ämnet. Däremot kan vi titta på principerna:
Det hela följer alltså en viss logik, nämligen den att man i JavaScript tar bort streck och mellanrum och sätter ihop kommandot till ett enda ord, med liten begynnelsebokstav och stora bokstäver i början på varje efterföljande del. Följande exempel visar skillnaden mellan de båda språkens syntax:
Oftast vill man dock ändra färger och liknande inne i ett script och då använder man i stället det vanliga scriptelementet. Det skall jag visa mer av i nästa avsnitt. 3. Ändra bakgrundsfärgMan kan alltså ändra en textfärg med JavaScript. Detta var vanligare förr då webbläsarna inte kunde tolka stilmallskod särskilt bra. Exempel 1 <form name="form1"> Titta på exemplet i praktiken > Här använder jag alltså ett enkelt script inne i formuläret. När man klickar på knappen ändras bakgrundsfärgen med bgColor, vars värde blir det värde man skrivit in i textrutan. Man kan självklart också koppla denna typ av script till förvalda färger: Exempel 2 <script language="JavaScript"> function FargBla() { function FargGron()
{ + <form name="form1"> Titta på exemplet i praktiken > Här använder jag alltså ett enkelt script där bakgrundsfärgen ändras genom egenskapen bgColor. 4. Ändra textfärgenMan kan självklart också påverka textfärgen på samma sätt. Här visar jag motsvarande exempel: Exempel 3 <form name="form1"> Titta på exemplet i praktiken > fgColor står för "foreground color". Ibland fungerar det bättre att bara använda "color", som är stilmallskommandot: Exempel 4 <form name="form1"> Titta på exemplet i praktiken > Självklart kan man sedan ändra flera saker samtidigt. Man kombinerar då bara flera olika kommandon i samma funktion: Exempel 5 <script language="JavaScript"> function VittSvart()
{ Titta på exemplet i praktiken > Koden är ju inte speciellt komplicerad. Vill man däremot veta vilka koder som man kan använda måste man konsultera en manual. 5. Ändra färger dynamisktEgentligen är denna rubrik lite dum eftersom alla exempel ovan ändrat färgerna dynamiskt. men här tänkte jag visa ett litet exempel på hur man kan göra för att skapa många olika färger på samma sida, utan att behöva skapa en massa olika stilmallar eller funktioner: Exempel 6 <script language="JavaScript"> + onClick="Farger('black','red','orange','aqua','yellow') Titta på exemplet i praktiken > Funktionen innehåller alltså ett antal parametrar, som används för att sätta en slags värden eller platser för värden för dokumentobjektet. Platserna fylls sedan med de färger man skriver in i onClick-attributet (eller annan händelsehanterare), t.ex för en knapp. Observera att man måste använda enkla citationstecken. Se också till så att inga stilmallar är aktiverade. Knapparna måste också ha olika värden i value, annars krånglar scriptet. Ett liknande exempel ser ut så här: Exempel 7 <style type="text/css"> + <table> <td width="1" align="center">|</td> <td onMouseOver="bgColor='#CCCCFF'"
onClick="window.location='../../../javascript.html'" <td width="1" align="center">|</td> <td onMouseOver="bgColor='#CCCCFF'"
onClick="window.location='../../js_css.html' </tr> Titta på exemplet i praktiken > På sidan med exemplet hittar du även en förklaring av vad koden gör! 6. Rörlig textEftersom den här sidan handlar om JavaScript och CSS vill jag passa på och visa hur man kan använda en kombination av de två för att få en text att röra sig över skärmen. Exempel 8 <script language="JavaScript"> + <body onLoad="FlyttaText()"> Titta på exemplet i praktiken > Funktionen flyttar texten åt höger så länge den ligger inom 400 pixlar från kanten, räknat från den vänstraste pixeln. Egenskapen pixelLeft finns dock inte i alla webbläsare. Det finns också andra egenskaper man kan använda, t.ex: pixelTop (flyttar texten uppifrån och ner). Man kan också kombinera kommandona: Exempel 9 <script language="JavaScript"> + <body onLoad="FlyttaText()"> Titta på exemplet i praktiken > En viktig del av scriptet är metoden setTimeout. Enkelt uttryckt anger man med den att webbläsaren skall vänta 20 millisekunder mellan varje gång funktionen läses in. på det viset får man en mjuk rörelse mellan varje förflyttning av texten, jämförbar med bildrutorna i en film. Ytterligare en sak att nämna är att jag lagt texten under de andra objekten på sidan. (Det syns dock inte i alla webbläsare.) Vill man kunna förflytta objekt över olika objekt brukar man använda sig av z-positionering, alltså att lägga objekten i olika lager. Det skall vi titta närmare på i nästa avsnitt. 7. Z-indexTermen z-index kunde du läsa om på sidan om stilmallar, "Positionering av boxar" och kapitlet om lagereffekter. Läs mer > Ett av de exemplen jag visade var ungefär följande: Exempel 10 <style type="text/css"> .PositioneradBild {
+ <div class="PositioneradText">Denna
text ligger ovanpå bilden!</div> Texten lägger sig ovanpå bilden tack vare olika z-indexvärden. Med JavaScript och z-index kan man också få fram effekter där ett objekt rör sig obehindrat över eller under de andra. Man kan visa detta genom att ändra placeringen dynamiskt. Jag utgår ifrån exemplet ovan och lägger till ett kommando för rörelse: Exempel 11 <style type="text/css"> .PositioneradBild {
<script language="JavaScript"> + Titta på exemplet i praktiken > Som du ser stannar rörelsen då bilden och texten flyttats så att översta pixeln ligger 400 pixlar från övre kanten. På min sida med surftips inom programmering hittar du gott om scriptbibliotek. Tänk bara på att scripten oftast inte fungerar i alla webbläsare, i synnerhet när man involverar CSS. Jag har testat ett par hundra script för mina sidor och knappt tio visades i samtliga av mina webbläsare: Internet Explorer 6 för PC och 5.2 för Mac OS X, Netscape 6 för PC och Mac, safari för Mac OS X! 8. ÖvningarÖvning
1 Övning
2 Övning
3 Övning
4 |