Connecting Tech Pros Worldwide Forums | Help | Site Map

Go to new page at the end of my function script

Tony
Guest
 
Posts: n/a
#1: Jul 31 '06
I have a function that loops through a set of images but at the end of
the loop I need the page to go to a new location. Does anyone know how
force my page to go there.

This is what I am thinking

function animateThenGo()
loopimages;
location.href "mypage.htm"

anything that might get me started would be great.


VK
Guest
 
Posts: n/a
#2: Jul 31 '06

re: Go to new page at the end of my function script



Tony wrote:
Quote:
I have a function that loops through a set of images but at the end of
the loop I need the page to go to a new location. Does anyone know how
force my page to go there.
>
This is what I am thinking
>
function animateThenGo()
loopimages;
location.href "mypage.htm"
>
anything that might get me started would be great.
JavaScript doesn't have commands like "pause" or "sleep" or "resume" or
so. So with your approach the script will loop all images momentarly
and load new page. You need a timer here.
....
function loopImages() {
if (condition) {
// swap image
setTimeout('loopImages()', delay);
}
else {
location.href = 'mypage.html';
}
}

window.onload = loopImages;
....

condition, swap image routine and the desired delay (in ms) are left
for you.

Randy Webb
Guest
 
Posts: n/a
#3: Jul 31 '06

re: Go to new page at the end of my function script


VK said the following on 7/31/2006 12:21 PM:
Quote:
Tony wrote:
Quote:
>I have a function that loops through a set of images but at the end of
>the loop I need the page to go to a new location. Does anyone know how
>force my page to go there.
>>
>This is what I am thinking
>>
>function animateThenGo()
> loopimages;
> location.href "mypage.htm"
>>
>anything that might get me started would be great.
What you have is a good start, other than the missing = sign after
location.href
Quote:
JavaScript doesn't have commands like "pause" or "sleep" or "resume" or
so. So with your approach the script will loop all images momentarly
and load new page. You need a timer here.
Yours won't do any better.
Quote:
function loopImages() {
if (condition) {
// swap image
setTimeout('loopImages()', delay);
}
else {
location.href = 'mypage.html';
}
}
window.onload = loopImages;
There is no need for recursion there. None at all.
Quote:
condition, swap image routine and the desired delay (in ms) are left
for you.
And a proper logic sequence as well?

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
VK
Guest
 
Posts: n/a
#4: Aug 1 '06

re: Go to new page at the end of my function script



Randy Webb wrote:
Quote:
Quote:
function loopImages() {
if (condition) {
// swap image
setTimeout('loopImages()', delay);
}
else {
location.href = 'mypage.html';
}
}
window.onload = loopImages;
>
There is no need for recursion there. None at all.
Where did you see any recursion here? loopImages sets timer, but it
doesn't call itself in the same execution context.
If you have a better idea how to make a timed slideshow without timers
I would like to see it. Something like to try to check the processor
speed and set 10,000-1,000,000 sin-cos calculation loops? ;-)
Quote:
And a proper logic sequence as well?
I will be glad to further comment the logic for OP and anyone else if
asked.

Tony
Guest
 
Posts: n/a
#5: Aug 6 '06

re: Go to new page at the end of my function script


I have been trying to adapt what you said to this bit of (out of my
league) code.
Would you mind taking a look at it and telling where to insert the if
statement you gave to that will make the page go to the new page after
the images have looped once.

I will be applying this to an imag map next so I can't use the page
load to start the animation. It must start when the user clicks on the
map.

Thanks

<html>
<head>
<SCRIPT>
function ImageAnimator (imgName, imgURLs, spd) {
this.id = ImageAnimator.cnt;
ImageAnimator.elements[ImageAnimator.cnt++] = this;
this.imgName = imgName;
this.imgURLs = imgURLs;
this.spd = spd ? spd : 500;
this.images = new Array(this.imgURLs.length);
for (var i = 0; i < this.imgURLs.length; i++) {
this.images[i] = new Image();
this.images[i].src = this.imgURLs[i];
}
}
function ImageAnimator_play (up) {
if (this.tid)
clearTimeout(this.tid);
this.up = up || typeof up == 'undefined' ? true : false;
if (this.up)
this.cnt = 0;
else
this.cnt--;
if (!this.image)
this.image = document[this.imgName];
if (this.image) {
if (this.up)
this.animateUp();
else
this.animateDown();
}
}
ImageAnimator.prototype.play = ImageAnimator_play;
function ImageAnimator_animateUp () {
this.image.src = this.images[this.cnt].src;
this.cnt++;
if (this.cnt < this.imgURLs.length) {
this.tid = setTimeout('ImageAnimator.elements[' + this.id
+ '].animateUp()', this.spd);
}
else
this.cnt--;
}
ImageAnimator.prototype.animateUp = ImageAnimator_animateUp;
function ImageAnimator_animateDown () {
this.image.src = this.images[this.cnt].src;
this.cnt--;
if (this.cnt >= 0 && this.cnt < this.imgURLs.length) {
this.tid = setTimeout('ImageAnimator.elements[' + this.id
+ '].animateDown()', this.spd);
}
else
this.cnt = 0;
}
ImageAnimator.prototype.animateDown = ImageAnimator_animateDown;
ImageAnimator.cnt = 0;
ImageAnimator.elements = new Array();
</SCRIPT>
<SCRIPT>
var anImageAnimator =
new ImageAnimator (
'anImage',
new Array ('images/Entrance.gif',
'images/EntranceTurn1.gif',
'images/EntranceTurn2.gif',
'images/EntranceTurn3.gif',
'images/EntranceTurn4.gif',
'images/EntranceTurn5.gif',
'images/EntranceTurn6.gif',
'images/EntranceTurn7.gif',
'images/main.gif'),
50
);
</SCRIPT>

<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">

</head>
<body bottomMargin="0" leftMargin="0" topMargin="0" rightMargin="0">

<map name="btnMap">
<area href="javascript: void 0" onclick="anImageAnimator.play(true)"
shape="rect" coords="41, 35, 133, 68">
</map>
<IMG NAME="anImage" SRC="images/Entrance.gif" BORDER="0"
usemap="#btnMap">

</body>
</html>

Closed Thread