random number generation

F

Fan924

How do I add random number generation to this background image slide
show? Everything I try kills if. TIA
_____________________________________
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 2</title>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript1.2">
var pic=new Array()
pic[0]="pic/./000.bmp"
pic[1]="pic/./001.jpg"
pic[2]="pic/./002.jpg"
pic[3]="pic/./003.jpg"
pic[4]="pic/./004.jpg"
pic[5]="pic/./005.jpg"
pic[6]="pic/./006.jpg"
pic[7]="pic/./007.jpg"
pic[8]="pic/./008.jpg"
pic[9]="pic/./009.jpg"
var img=new Array()
for (i=0;i<pic.length;i++){
img=new Image()
img.src=pic
}
var enf=-1
function Slide(){
if (enf<pic.length-1)
enf++
else
enf=0
document.body.background=img[enf].src
}
if (document.all||document.getElementById)
window.onload=new Function('setInterval("Slide()",1000)')
</SCRIPT></BODY></HTML>
 
T

Thomas 'PointedEars' Lahn

Fan924 said:
How do I add random number generation to this background image slide
show? Everything I try kills if. TIA
[...]
var enf=-1
function Slide(){
if (enf<pic.length-1)
enf++
else
enf=0
document.body.background=img[enf].src
}

You should try to learn how to write legible code first. After that it
should become much easier for you to see the issue.

However, as you are using FrontPage 4.0 and all other kinds of obsolete,
error-prone, inefficient nonsense, and all of this could already be
copy-and-pray in the first place, you may already be beyond help.

<http://jibbering.com/faq/>


PointedEars
 
G

Gregor Kofler

Fan924 meinte:
How do I add random number generation to this background image slide
show? Everything I try kills if. TIA

would be something like

i = parseInt(Math.random() * pic.length, 10);

Perhaps you should show what you'e tried so far. However, given the
Frontpage crap you've posted, I can't think of anything meaningful.

["JS" atrocities snipped]

Gregor
 
R

RobG

Fan924 said:
How do I add random number generation to this background image slide
show? Everything I try kills if. TIA
_____________________________________
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 2</title>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript1.2">

The language attribute was deprecated many years ago, type is reqired, use:

<script type="text/javascript">


Indented code is easier to read for most of us.

var pic=new Array()
pic[0]="pic/./000.bmp"
pic[1]="pic/./001.jpg"
pic[2]="pic/./002.jpg"
pic[3]="pic/./003.jpg"
pic[4]="pic/./004.jpg"
pic[5]="pic/./005.jpg"
pic[6]="pic/./006.jpg"
pic[7]="pic/./007.jpg"
pic[8]="pic/./008.jpg"
pic[9]="pic/./009.jpg"

That can be written more concisely as an Array literal:

var pic = ["pic/./000.bmp", "pic/./001.jpg",
"pic/./002.jpg", "pic/./003.jpg",
...
];

var img=new Array()

var img = [];

for (i=0;i<pic.length;i++){

Don't forget to declare variables. It doesn't really matter here but is
a good habbit:

for (var i=0; i<pic.length; i++){

img=new Image()
img.src=pic
}
var enf=-1


I understand why you've used -1 here, but consider using 0 and setting
your background image to pic/./000.bmp otherwise your visitors will have
to wait for the entire page and all images to load, then another second
before any background image is shown. So use:

function Slide(){

By convention, function names that start with capital letters are
reserved for constructors.
if (enf<pic.length-1)
enf++
else
enf=0

That can be written as:

var enf = 0;
function Slide() {
enf = ++enf % pic.length;

document.body.background=img[enf].src

document.body.style.backgroundImage = 'url("'+img[enf].src+'")';

}
if (document.all||document.getElementById)

The intention of feature detection is that you test for the feature that
you want to use. It is a bad strategy to test for some other feature to
infer support for the one you actually want to use.

window.onload=new Function('setInterval("Slide()",1000)')

The Function constructor is unnecessary here and equivalent to the use
of eval, use:

window.onload = function(){
window.setInterval(slide, 1000);
}
 
D

Dr J R Stockton

In comp.lang.javascript message <[email protected]>,
Fan924 meinte:

would be something like

i = parseInt(Math.random() * pic.length, 10);

Please read the standard about what parseInt is *for*, and the FAQ for
Random(). Granted the best answer is not unlike that, but why post
*that*.

It's a good idea to read the newsgroup c.l.j and its FAQ. See below.
 
G

Gregor Kofler

Dr J R Stockton meinte:
In comp.lang.javascript message <[email protected]>,
Wed, 10 Sep 2008 15:44:47, Gregor Kofler <[email protected]>
posted:

Please read the standard about what parseInt is *for*, and the FAQ for
Random(). Granted the best answer is not unlike that, but why post
*that*.

Right doc - that's bullshit. Should have been Math.round() or rather
Math.floor() - in fact, that's what I use in my own library. Sorry.

Gregor
 
J

John G Harris

The language attribute was deprecated many years ago, type is reqired, use:

<script type="text/javascript">

Except that the draft for HTML 5 says the type attribute can be omitted
if the type is text/javascript, and the language attribute is no longer
deprecated (though its meaning has changed a little). :-(

Indented code is easier to read for most of us.
<snip>

Hear, hear!

John
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,733
Messages
2,569,439
Members
44,829
Latest member
PIXThurman

Latest Threads

Top