JavaScript and CSS - Dynamic Styles and Layers

From Techotopia
Revision as of 18:38, 17 May 2007 by Neil (Talk | contribs) (Making Basic Dynamic Style Changes)

Jump to: navigation, search

In the previous chapter (Understanding Cascading Style Sheets (CSS)) we learned about the basics of Cascading Style Sheets (CSS). If you are not familar with CSS it is recommened that you take some time to review the previous chapter.

In this chaptyer we will begin to explore making dynamic style changes to web page using JavaScript and CSS. We will being withj some simple change such changing the color text before moving on to more complex tasks such as hiding, showing and moving blocks of content.

Making Basic Dynamic Style Changes

The W3C DOM (Document OIbject Model) provides a powerful mechanism for dynmically controlling the styles used in a web page. Using JavaScript the style of any element can be changed via the properties of that element's style object.

Suppose we have the following HTML:

<P id="introtext">This is some introductory text</p>

We can very easily change the color of this text from JavaScript. The first step is to access the element using the getElementById() method of the document object (see the JavaScript Document Object chapter for details of this object):


var myElement = document.getElementById("introtext");

Having gained access to the element object we can access the color property of the style object for this element and change the color:


myElement.style.color="green";

<pre>

Let's put this togther in an example in which we have a button configured to change the color of some text when it is pressed:

<pre>
<html>
<head>
<title>JavaScript Radio Example</title>
<script language=javascript type="text/javascript">
function buttonPressed()
{
    var myElement = document.getElementById("introtext");
    myElement.style.color="green";
}
</script>
</head>

<body>
<p id="introtext">This is some introductory text. The color of the text sould change when the button is pressed"</p>

<form action="" name="orderForm">
<input type="BUTTON" value="Click to change text color" onClick="buttonPressed()" />
</form>

</body>
</html>