Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > Modify Script to change background color based on Array Index

Reply
Thread Tools

Modify Script to change background color based on Array Index

 
 
DavidB
Guest
Posts: n/a
 
      08-03-2006
Greetings

I don't know if this is possible, but this group should be able to tell me.

I have a webpage with a changing message board (I understand the problems
with having changing text, but this was a nice victory over the demand for
a scrolling message). The messages are updates on community information.
What I would like to be able to do is have the background color (and
possibly font color) change based on the Array Index. For example, if the
pool is going to be closed for chemical treatment, I would like the display
to have a red background. If there is going to be street cleaning
requiring the removal of vehicles, I would like a yellow background. For
all other messages, a default blue background.

The code I am working with and abbreviated CSS & HTML are:

<script type="text/javascript">
var msgIX = 0;
var msgs = [
" Notices and Messages", \* RED *\
"Chemical Treatment August 21", \* RED *\
"Pool Closed", \* RED *\
" Notices and Messages", \* YELLOW *\
"Street Cleaning August 12 ", \* YELLOW *\
"Remove your Vehicles from the street ", \* YELLOW *\
" Notices and Messages", \* BLUE here down *\
"Family Movie Night is ",
"August 25 ",
" Notices and Messages",
"Pub Night and Quiz is ",
"October 14 or 21 (TBD) ",
" Notices and Messages",
"Pot Luck Dinner is ",
"November--Exact Date TBD ",
" Notices and Messages",];
function scrollMessages(milliseconds) {
window.setInterval ("displayMessage()", milliseconds);
}
function displayMessage() {
if (document.getElementById != null) {
var heading = document.getElementById("scrollme");
heading.firstChild.nodeValue = msgs[msgIX];
}else{
if(navigator.appName == "Microsoft Internet Explorer") {
var heading = document.all.item("scrollme");
heading.innerText = msgs[msgIX];
}
}
++msgIX;
msgIX %= msgs.length;
}
</script>
<style>
#noticebox {
padding:"2px";
border-width:"2px";
border-style:inset;
border-color:blue;
width:174px;
height:"42px";
z-index:30;
text-align:-moz-center;
text-align:center;
background-color:"#ceg";
left:0;
}
</style>


<body onload="scrollMessge(2000)">

<div id="noticebox">
<p class="mainbold" id="scrollme"> Notices and Messages</p>
</div>


Any assistance would appreciated--even if it entails telling me it cant be
done.

Thanks
DB.
..
 
Reply With Quote
 
 
 
 
bobzimuta
Guest
Posts: n/a
 
      08-03-2006
DavidB wrote:
> I have a webpage with a changing message board (I understand the problems
> with having changing text, but this was a nice victory over the demand for
> a scrolling message). The messages are updates on community information.
> What I would like to be able to do is have the background color (and
> possibly font color) change based on the Array Index. For example, if the
> pool is going to be closed for chemical treatment, I would like the display
> to have a red background. If there is going to be street cleaning
> requiring the removal of vehicles, I would like a yellow background. For
> all other messages, a default blue background.


With a slight mofication to the messages

var msgs = [
[ " Notices and Messages", "red" ], \* RED *\
....
[ " Notices and Messages", "yellow" ], \* YELLOW *\
....
];

it's easy enough in your function to get the message and color:
var msg = msgs[ msgIndex ][ 0 ];
var color = msgs[ msgIndex ][ 1 ];

to style an element's background color:
document.getElementById( '...' ).style.backgroundColor = color;

or body:
document.body.style.backgroundColor = color;

 
Reply With Quote
 
 
 
 
DavidB
Guest
Posts: n/a
 
      08-04-2006
"bobzimuta" <(E-Mail Removed)> wrote in
news:(E-Mail Removed) ups.com:

> DavidB wrote:
>> I have a webpage with a changing message board (I understand the
>> problems with having changing text, but this was a nice victory over
>> the demand for a scrolling message). The messages are updates on
>> community information. What I would like to be able to do is have the
>> background color (and possibly font color) change based on the Array
>> Index. For example, if the pool is going to be closed for chemical
>> treatment, I would like the display to have a red background. If
>> there is going to be street cleaning requiring the removal of
>> vehicles, I would like a yellow background. For all other messages,
>> a default blue background.

>
> With a slight mofication to the messages
>
> var msgs = [
> [ " Notices and Messages", "red" ], \* RED *\
> ...
> [ " Notices and Messages", "yellow" ], \* YELLOW *\
> ...
>];
>
> it's easy enough in your function to get the message and color:
> var msg = msgs[ msgIndex ][ 0 ];
> var color = msgs[ msgIndex ][ 1 ];
>
> to style an element's background color:
> document.getElementById( '...' ).style.backgroundColor = color;
>
> or body:
> document.body.style.backgroundColor = color;
>


Just exactly what I wanted. Thanks for the help!

DB
 
Reply With Quote
 
DavidB
Guest
Posts: n/a
 
      08-06-2006
DavidB <(E-Mail Removed)> wrote in
news:Xns981486161C803pitcarnhotmailcom@64.59.135.1 59:

> Greetings
>
> I don't know if this is possible, but this group should be able to
> tell me.
>
> I have a webpage with a changing message board (I understand the
> problems with having changing text, but this was a nice victory over
> the demand for a scrolling message). The messages are updates on
> community information. What I would like to be able to do is have the
> background color (and possibly font color) change based on the Array
> Index. For example, if the pool is going to be closed for chemical
> treatment, I would like the display to have a red background. If
> there is going to be street cleaning requiring the removal of
> vehicles, I would like a yellow background. For all other messages, a
> default blue background.
>
> The code I am working with and abbreviated CSS & HTML are:
>
> <script type="text/javascript">
> var msgIX = 0;
> var msgs = [
> " Notices and Messages", \* RED *\
> "Chemical Treatment August 21", \* RED *\
> "Pool Closed", \* RED *\
> " Notices and Messages", \* YELLOW *\
> "Street Cleaning August 12 ", \* YELLOW *\
> "Remove your Vehicles from the street ", \* YELLOW *\
> " Notices and Messages", \* BLUE here down *\
> "Family Movie Night is ",
> "August 25 ",
> " Notices and Messages",
> "Pub Night and Quiz is ",
> "October 14 or 21 (TBD) ",
> " Notices and Messages",
> "Pot Luck Dinner is ",
> "November--Exact Date TBD ",
> " Notices and Messages",];
> function scrollMessages(milliseconds) {
> window.setInterval ("displayMessage()", milliseconds);
> }
> function displayMessage() {
> if (document.getElementById != null) {
> var heading = document.getElementById("scrollme");
> heading.firstChild.nodeValue = msgs[msgIX];
> }else{
> if(navigator.appName == "Microsoft Internet Explorer") {
> var heading = document.all.item("scrollme");
> heading.innerText = msgs[msgIX];
> }
> }
> ++msgIX;
> msgIX %= msgs.length;
> }
> </script>
> <style>
> #noticebox {
> padding:"2px";
> border-width:"2px";
> border-style:inset;
> border-color:blue;
> width:174px;
> height:"42px";
> z-index:30;
> text-align:-moz-center;
> text-align:center;
> background-color:"#ceg";
> left:0;
> }
> </style>
>
>
> <body onload="scrollMessge(2000)">
>
> <div id="noticebox">
> <p class="mainbold" id="scrollme"> Notices and Messages</p>
> </div>
>
>
> Any assistance would appreciated--even if it entails telling me it
> cant be done.
>
> Thanks
> DB.
> .


I have made the changes as suggested. In Opera and Firefox the messages
cycle through correctly. In IE, the messages run through once and throw
an error:

Line 29
Char 5
Error 'msgs[...].0' is null or not an object
Code 0

Any suggestions?

DB
 
Reply With Quote
 
Richard Cornford
Guest
Posts: n/a
 
      08-07-2006
DavidB wrote:
<snip>
>> var msgIX = 0;
>> var msgs = [
>> " Notices and Messages", \* RED *\

<snip>
>> " Notices and Messages",];

^
<snip>
> I have made the changes as suggested.


If you think about it you should see that responding by saying that the
code resulting form your changes to your original does not work, without
posting that code so people can see what you have done, is likely to be
counterproductive.

> In Opera and Firefox the messages cycle through correctly.
> In IE, the messages run through once and throw an error:
>
> Line 29
> Char 5
> Error 'msgs[...].0' is null or not an object
> Code 0


If a comma appears as the last character in an Array literal IE's
JScript erroneously uses it to imply a final undefined element in the
array, which makes the Array one longer than it would be in a correct
ECMAScript implementation, and when you iterate over the elements the
final one is undefined and will error if treated as an object.

Richard.



 
Reply With Quote
 
DavidB
Guest
Posts: n/a
 
      08-09-2006
"Richard Cornford" <(E-Mail Removed)> wrote in news:eb6psi$kqk$1
$(E-Mail Removed):

> DavidB wrote:
> <snip>
>>> var msgIX = 0;
>>> var msgs = [
>>> " Notices and Messages", \* RED *\

> <snip>
>>> " Notices and Messages",];

> ^
> <snip>
>> I have made the changes as suggested.

>
> If you think about it you should see that responding by saying that the
> code resulting form your changes to your original does not work, without
> posting that code so people can see what you have done, is likely to be
> counterproductive.
>
>> In Opera and Firefox the messages cycle through correctly.
>> In IE, the messages run through once and throw an error:
>>
>> Line 29
>> Char 5
>> Error 'msgs[...].0' is null or not an object
>> Code 0

>
> If a comma appears as the last character in an Array literal IE's
> JScript erroneously uses it to imply a final undefined element in the
> array, which makes the Array one longer than it would be in a correct
> ECMAScript implementation, and when you iterate over the elements the
> final one is undefined and will error if treated as an object.
>
> Richard.
>
>
>
>


Thanks Richard. The extra comma was the culprit.

DB
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Changing font color from current font color to black color Kamaljeet Saini Ruby 0 02-13-2009 04:58 PM
sorting index-15, index-9, index-110 "the human way"? Tomasz Chmielewski Perl Misc 4 03-04-2008 05:01 PM
rounded corners in which my border color is different than the background color laredotornado@zipmail.com Javascript 1 02-14-2007 07:37 AM
Problem with setting background color alternating item in datalist to a certain color fig000 ASP .Net Web Controls 0 09-06-2004 06:51 PM
How to modify the color according to background? Konrad Den Ende Javascript 11 06-29-2004 09:57 PM



Advertisments