Off Topic, but I wonder if anyone can help?

  • Thread starter Thread starter Andrew Bailey
  • Start date Start date
A

Andrew Bailey

Hi,

I've tried posting this in microsoft.public.webdesign.html but without
success (very little activity there) and I know that you guys are both
knowledgeable and helpful so please forgive this off topic post...


Here's a bit of code that I've written that displays a line of hyperlinks
when you mouseover an image. What I want to do is to hide the hyperlinks on
mouseout BUT AFTER A SPECIFIED DELAY because the line is quite small and if
the pointer leaves the span area the user has to mouseover the reveal image
and start again.

As a workaround I'm using mouseup so the row disappears when a link is
clicked or when the reveal image is clicked.

the code...

<span style="visibility: hidden"
onmouseover="this.style.visibility='visible'"
onmouseup="this.style.visibility='hidden'">

<a href="#ITEM1" class="jump" hidefocus>ITEM1</a>
<a href="#ITEM2" class="jump" hidefocus>ITEM2</a>
<a href="#ITEM3" class="jump" hidefocus>ITEM3</a>

<a><img src="expand.gif" alt="MENU" style="visibility: visible"></a>
</span>



cheers

Andy
 
setTimeout Method

--------------------------------------------------------------------------------

Evaluates an expression after a specified number of milliseconds has elapsed.

Syntax

iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])Parameters

vCode Required. Variant that specifies the function pointer or string that indicates the code to be executed when the specified interval has elapsed.
iMilliSeconds Required. Integer that specifies the number of milliseconds.
sLanguage Optional. String that specifies one of the following values: JScript Language is JScript.
VBScript Language is VBScript.
JavaScript Language is JavaScript.


Return Value

Integer. Returns an identifier that cancels the evaluation with the clearTimeout method.

Remarks

In versions earlier than Microsoft® Internet Explorer 5, the first argument of setTimeout must be a string. Evaluation of the string is deferred until the specified interval elapses.

As of Internet Explorer 5, the first argument of setTimeout can be a string or a function pointer.

The specified expression or function is evaluated once. For repeated evaluation, use the setInterval or setInterval method.

Examples

The following example uses the setTimeout method to evaluate a simple expression after one second has elapsed.

window.setTimeout("alert('Hello, world')", 1000);The following example uses the setTimeout method to evaluate a slightly more complex expression after one second has elapsed.

var sMsg = "Hello, world";
window.setTimeout("alert(" + sMsg + ")", 1000);This example uses the setTimeout method to hide a input type=button object after three seconds. If the user clicks the Count Down button and then counts to three, the Now You See Me button disappears.

<SCRIPT>
function fnHide(oToHide){
window.setTimeout("fnHide2(" + oToHide.id + ")", 3000);
}
function fnHide2(sID){
var o = eval(sID);
o.style.display="none";
}
</SCRIPT>
<INPUT TYPE=button VALUE="Count Down"
ID="oHideButton" onclick="fnHide(this)">This example uses a function pointer to pass the data. In this case, the data is stored in a global variable because it cannot be passed directly. In the preceding example, the ID of the button is passed as a parameter to the function invoked by the setTimeout method. This is possible only when a string is passed as the first argument.

Show Example

<SCRIPT>
var g_oToHide = null;

function fnHide(oToHide){
g_oToHide = oToHide;
window.setTimeout(fnHide2, 3000);
}
function fnHide2(sID){
if (g_oToHide) {
g_oToHide.style.display="none";
}
}
</SCRIPT>
<INPUT TYPE=button VALUE="Now you see me ..." ID="oHideButton"
onclick="fnHide(this)">Show Me
Standards Information

There is no public standard that applies to this method.

Applies To

[ Object Name ]
Platform Version
Win16:
Win32:
WinCE:
Unix:
Mac:
Version data is listed when the mouse hovers over a link, or the link has focus.
window
Move the mouse pointer over an element in the Applies To list to display availability information for the listed platforms. Internet Explorer does not expose this member on platforms that are not listed.

See Also

clearTimeout
 
Sat, 19 Nov 2005 10:56:04 GMT from Andrew Bailey
Here's a bit of code that I've written that displays a line of hyperlinks
when you mouseover an image.

<span style="visibility: hidden"
onmouseover="this.style.visibility='visible'"
onmouseup="this.style.visibility='hidden'">

It may do that on your browser, but it doesn't do it on mine.

Mouseovers in general are a bad idea. Even if the browser supports
them, essentially the poor visitor has to scan the entire age with
the mouse, hoping to uncover some useful hidden information or
(worse) navigation. Most won't bother.
 
Hi Dave,

Thanks for replying, I have tried to use the "settimeout" command but it
seems to only work when you use it to call a function. Normally that
wouldn't be a problem but my code is used in OSCommerce as part of an array
document write so I can't call a function as the ID would be the same for
each time the code is repeated.

So, this is the sort of thing I would need to do

.... my original code with non-working setTimeout example...

<span style="visibility: hidden"
onmouseover="this.style.visibility='visible'"
onmouseout="setTimeout(this.style.visibility='hidden', 5000)">

<a href="#ITEM1" class="jump" hidefocus>ITEM1</a>
<a href="#ITEM2" class="jump" hidefocus>ITEM2</a>
<a href="#ITEM3" class="jump" hidefocus>ITEM3</a>

<a><img src="expand.gif" alt="MENU" style="visibility: visible"></a>
</span>


DO you know how to get the above code to work?

cheers

Andy


"David Candy" <.> wrote in message
setTimeout Method

--------------------------------------------------------------------------------

Evaluates an expression after a specified number of milliseconds has
elapsed.

Syntax

iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])Parameters

vCode Required. Variant that specifies the function pointer or
string that indicates the code to be executed when the specified interval
has elapsed.
iMilliSeconds Required. Integer that specifies the number of
milliseconds.
sLanguage Optional. String that specifies one of the following
values: JScript Language is JScript.
VBScript Language is VBScript.
JavaScript Language is JavaScript.


Return Value

Integer. Returns an identifier that cancels the evaluation with the
clearTimeout method.

Remarks

In versions earlier than Microsoft® Internet Explorer 5, the first
argument of setTimeout must be a string. Evaluation of the string is
deferred until the specified interval elapses.

As of Internet Explorer 5, the first argument of setTimeout can be a
string or a function pointer.

The specified expression or function is evaluated once. For repeated
evaluation, use the setInterval or setInterval method.

Examples

The following example uses the setTimeout method to evaluate a simple
expression after one second has elapsed.

window.setTimeout("alert('Hello, world')", 1000);The following example uses
the setTimeout method to evaluate a slightly more complex expression after
one second has elapsed.

var sMsg = "Hello, world";
window.setTimeout("alert(" + sMsg + ")", 1000);This example uses the
setTimeout method to hide a input type=button object after three seconds. If
the user clicks the Count Down button and then counts to three, the Now You
See Me button disappears.

<SCRIPT>
function fnHide(oToHide){
window.setTimeout("fnHide2(" + oToHide.id + ")", 3000);
}
function fnHide2(sID){
var o = eval(sID);
o.style.display="none";
}
</SCRIPT>
<INPUT TYPE=button VALUE="Count Down"
ID="oHideButton" onclick="fnHide(this)">This example uses a function
pointer to pass the data. In this case, the data is stored in a global
variable because it cannot be passed directly. In the preceding example, the
ID of the button is passed as a parameter to the function invoked by the
setTimeout method. This is possible only when a string is passed as the
first argument.

Show Example

<SCRIPT>
var g_oToHide = null;

function fnHide(oToHide){
g_oToHide = oToHide;
window.setTimeout(fnHide2, 3000);
}
function fnHide2(sID){
if (g_oToHide) {
g_oToHide.style.display="none";
}
}
</SCRIPT>
<INPUT TYPE=button VALUE="Now you see me ..." ID="oHideButton"
onclick="fnHide(this)">Show Me
Standards Information

There is no public standard that applies to this method.

Applies To

[ Object Name ]
Platform Version
Win16:
Win32:
WinCE:
Unix:
Mac:
Version data is listed when the mouse hovers over a link, or
the link has focus.
window
Move the mouse pointer over an element in the Applies To list to
display availability information for the listed platforms. Internet Explorer
does not expose this member on platforms that are not listed.

See Also

clearTimeout
 
Hi Stan,

The code pasted was just the "bare-bones" necessary to demonstrate what I
was trying to do, I'm sure the whole page would work in your browser.

The mouseover image is very obvious in the finished page, and even has an
animated background telling users to "Click here to navigate page" so no
worries there.

Cheers

Andy
 
Pass a parameter. But this works

<body>
<a onmouseout='window.setTimeout("alert()", 1000);'>Hello there</a>
</body>

--
--------------------------------------------------------------------------------------------------
Read David defending the concept of violence.
http://margokingston.typepad.com/harry_version_2/2005/10/entering_the_ga.html#more
=================================================
Andrew Bailey said:
Hi Dave,

Thanks for replying, I have tried to use the "settimeout" command but it
seems to only work when you use it to call a function. Normally that
wouldn't be a problem but my code is used in OSCommerce as part of an array
document write so I can't call a function as the ID would be the same for
each time the code is repeated.

So, this is the sort of thing I would need to do

... my original code with non-working setTimeout example...

<span style="visibility: hidden"
onmouseover="this.style.visibility='visible'"
onmouseout="setTimeout(this.style.visibility='hidden', 5000)">

<a href="#ITEM1" class="jump" hidefocus>ITEM1</a>
<a href="#ITEM2" class="jump" hidefocus>ITEM2</a>
<a href="#ITEM3" class="jump" hidefocus>ITEM3</a>

<a><img src="expand.gif" alt="MENU" style="visibility: visible"></a>
</span>


DO you know how to get the above code to work?

cheers

Andy


"David Candy" <.> wrote in message
setTimeout Method

--------------------------------------------------------------------------------

Evaluates an expression after a specified number of milliseconds has
elapsed.

Syntax

iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])Parameters

vCode Required. Variant that specifies the function pointer or
string that indicates the code to be executed when the specified interval
has elapsed.
iMilliSeconds Required. Integer that specifies the number of
milliseconds.
sLanguage Optional. String that specifies one of the following
values: JScript Language is JScript.
VBScript Language is VBScript.
JavaScript Language is JavaScript.


Return Value

Integer. Returns an identifier that cancels the evaluation with the
clearTimeout method.

Remarks

In versions earlier than Microsoft® Internet Explorer 5, the first
argument of setTimeout must be a string. Evaluation of the string is
deferred until the specified interval elapses.

As of Internet Explorer 5, the first argument of setTimeout can be a
string or a function pointer.

The specified expression or function is evaluated once. For repeated
evaluation, use the setInterval or setInterval method.

Examples

The following example uses the setTimeout method to evaluate a simple
expression after one second has elapsed.

window.setTimeout("alert('Hello, world')", 1000);The following example uses
the setTimeout method to evaluate a slightly more complex expression after
one second has elapsed.

var sMsg = "Hello, world";
window.setTimeout("alert(" + sMsg + ")", 1000);This example uses the
setTimeout method to hide a input type=button object after three seconds. If
the user clicks the Count Down button and then counts to three, the Now You
See Me button disappears.

<SCRIPT>
function fnHide(oToHide){
window.setTimeout("fnHide2(" + oToHide.id + ")", 3000);
}
function fnHide2(sID){
var o = eval(sID);
o.style.display="none";
}
</SCRIPT>
<INPUT TYPE=button VALUE="Count Down"
ID="oHideButton" onclick="fnHide(this)">This example uses a function
pointer to pass the data. In this case, the data is stored in a global
variable because it cannot be passed directly. In the preceding example, the
ID of the button is passed as a parameter to the function invoked by the
setTimeout method. This is possible only when a string is passed as the
first argument.

Show Example

<SCRIPT>
var g_oToHide = null;

function fnHide(oToHide){
g_oToHide = oToHide;
window.setTimeout(fnHide2, 3000);
}
function fnHide2(sID){
if (g_oToHide) {
g_oToHide.style.display="none";
}
}
</SCRIPT>
<INPUT TYPE=button VALUE="Now you see me ..." ID="oHideButton"
onclick="fnHide(this)">Show Me
Standards Information

There is no public standard that applies to this method.

Applies To

[ Object Name ]
Platform Version
Win16:
Win32:
WinCE:
Unix:
Mac:
Version data is listed when the mouse hovers over a link, or
the link has focus.
window
Move the mouse pointer over an element in the Applies To list to
display availability information for the listed platforms. Internet Explorer
does not expose this member on platforms that are not listed.

See Also

clearTimeout

--------------------------------------------------------------------------------

© 2001 Microsoft Corporation. All rights reserved. Terms of use.

--
--------------------------------------------------------------------------------------------------
Read David defending the concept of violence.
http://margokingston.typepad.com/harry_version_2/2005/10/entering_the_ga.html#more
=================================================
Andrew Bailey said:
Hi,

I've tried posting this in microsoft.public.webdesign.html but without
success (very little activity there) and I know that you guys are both
knowledgeable and helpful so please forgive this off topic post...


Here's a bit of code that I've written that displays a line of hyperlinks
when you mouseover an image. What I want to do is to hide the hyperlinks
on
mouseout BUT AFTER A SPECIFIED DELAY because the line is quite small and
if
the pointer leaves the span area the user has to mouseover the reveal
image
and start again.

As a workaround I'm using mouseup so the row disappears when a link is
clicked or when the reveal image is clicked.

the code...

<span style="visibility: hidden"
onmouseover="this.style.visibility='visible'"
onmouseup="this.style.visibility='hidden'">

<a href="#ITEM1" class="jump" hidefocus>ITEM1</a>
<a href="#ITEM2" class="jump" hidefocus>ITEM2</a>
<a href="#ITEM3" class="jump" hidefocus>ITEM3</a>

<a><img src="expand.gif" alt="MENU" style="visibility: visible"></a>
</span>



cheers

Andy
 
Hi Dave,

Your example didn't work, probably as it is calling a function (eg
alert() ). I tried the following...

onmouseout='window.setTimeout("this.style.visibility='hidden'", 5000);'>

onmouseout='window.setTimeout("this.style.visibility='hidden'", "5000");'>

onmouseout="window.setTimeout("this.style.visibility='hidden'", 5000);">

onmouseout="window.setTimeout("this.style.visibility='hidden'", "5000");">

none of the above worked.

The best result so far has been with....

onmouseout="window.setTimeout('this.style.visibility=\'hidden\'', '5000')">

in words...

onmouseout=DOUBLEQUOTEwindow.setTimeout(SINGLEQUOTEthis.style.visibility=\SINGLEQUOTEhidden\SINGLEQUOTESINGLEQUOTE,
SINGLEQUOTE5000SINGLEQUOTE)DOUBLEQUOTE>


The command "setTimeout" uses the syntax of ('Object to be delayed', 'delay
time') so I have to proceed the single quotes already present with
backslashes so they don't interfere with the syntax for setTimeout. In the
above example you don't get any errors until you mouseout and then there is
the specified delay before the error is reported, so the code is waiting
before executing correctly but moans about "this.style" not being an object.

Nearly there ;)

Andy


"David Candy" <.> wrote in message
Pass a parameter. But this works

<body>
<a onmouseout='window.setTimeout("alert()", 1000);'>Hello there</a>
</body>

--
--------------------------------------------------------------------------------------------------
Read David defending the concept of violence.
http://margokingston.typepad.com/harry_version_2/2005/10/entering_the_ga.html#more
=================================================
Andrew Bailey said:
Hi Dave,

Thanks for replying, I have tried to use the "settimeout" command but it
seems to only work when you use it to call a function. Normally that
wouldn't be a problem but my code is used in OSCommerce as part of an
array
document write so I can't call a function as the ID would be the same for
each time the code is repeated.

So, this is the sort of thing I would need to do

... my original code with non-working setTimeout example...

<span style="visibility: hidden"
onmouseover="this.style.visibility='visible'"
onmouseout="setTimeout(this.style.visibility='hidden', 5000)">

<a href="#ITEM1" class="jump" hidefocus>ITEM1</a>
<a href="#ITEM2" class="jump" hidefocus>ITEM2</a>
<a href="#ITEM3" class="jump" hidefocus>ITEM3</a>

<a><img src="expand.gif" alt="MENU" style="visibility: visible"></a>
</span>


DO you know how to get the above code to work?

cheers

Andy


"David Candy" <.> wrote in message
setTimeout Method

--------------------------------------------------------------------------------

Evaluates an expression after a specified number of milliseconds has
elapsed.

Syntax

iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])Parameters

vCode Required. Variant that specifies the function pointer or
string that indicates the code to be executed when the specified interval
has elapsed.
iMilliSeconds Required. Integer that specifies the number of
milliseconds.
sLanguage Optional. String that specifies one of the following
values: JScript Language is JScript.
VBScript Language is VBScript.
JavaScript Language is JavaScript.


Return Value

Integer. Returns an identifier that cancels the evaluation with the
clearTimeout method.

Remarks

In versions earlier than Microsoft® Internet Explorer 5, the first
argument of setTimeout must be a string. Evaluation of the string is
deferred until the specified interval elapses.

As of Internet Explorer 5, the first argument of setTimeout can be a
string or a function pointer.

The specified expression or function is evaluated once. For repeated
evaluation, use the setInterval or setInterval method.

Examples

The following example uses the setTimeout method to evaluate a simple
expression after one second has elapsed.

window.setTimeout("alert('Hello, world')", 1000);The following example
uses
the setTimeout method to evaluate a slightly more complex expression after
one second has elapsed.

var sMsg = "Hello, world";
window.setTimeout("alert(" + sMsg + ")", 1000);This example uses the
setTimeout method to hide a input type=button object after three seconds.
If
the user clicks the Count Down button and then counts to three, the Now
You
See Me button disappears.

<SCRIPT>
function fnHide(oToHide){
window.setTimeout("fnHide2(" + oToHide.id + ")", 3000);
}
function fnHide2(sID){
var o = eval(sID);
o.style.display="none";
}
</SCRIPT>
<INPUT TYPE=button VALUE="Count Down"
ID="oHideButton" onclick="fnHide(this)">This example uses a function
pointer to pass the data. In this case, the data is stored in a global
variable because it cannot be passed directly. In the preceding example,
the
ID of the button is passed as a parameter to the function invoked by the
setTimeout method. This is possible only when a string is passed as the
first argument.

Show Example

<SCRIPT>
var g_oToHide = null;

function fnHide(oToHide){
g_oToHide = oToHide;
window.setTimeout(fnHide2, 3000);
}
function fnHide2(sID){
if (g_oToHide) {
g_oToHide.style.display="none";
}
}
</SCRIPT>
<INPUT TYPE=button VALUE="Now you see me ..." ID="oHideButton"
onclick="fnHide(this)">Show Me
Standards Information

There is no public standard that applies to this method.

Applies To

[ Object Name ]
Platform Version
Win16:
Win32:
WinCE:
Unix:
Mac:
Version data is listed when the mouse hovers over a link, or
the link has focus.
window
Move the mouse pointer over an element in the Applies To list to
display availability information for the listed platforms. Internet
Explorer
does not expose this member on platforms that are not listed.

See Also

clearTimeout

--------------------------------------------------------------------------------

© 2001 Microsoft Corporation. All rights reserved. Terms of use.

--
--------------------------------------------------------------------------------------------------
Read David defending the concept of violence.
http://margokingston.typepad.com/harry_version_2/2005/10/entering_the_ga.html#more
=================================================
Andrew Bailey said:
Hi,

I've tried posting this in microsoft.public.webdesign.html but without
success (very little activity there) and I know that you guys are both
knowledgeable and helpful so please forgive this off topic post...


Here's a bit of code that I've written that displays a line of hyperlinks
when you mouseover an image. What I want to do is to hide the hyperlinks
on
mouseout BUT AFTER A SPECIFIED DELAY because the line is quite small and
if
the pointer leaves the span area the user has to mouseover the reveal
image
and start again.

As a workaround I'm using mouseup so the row disappears when a link is
clicked or when the reveal image is clicked.

the code...

<span style="visibility: hidden"
onmouseover="this.style.visibility='visible'"
onmouseup="this.style.visibility='hidden'">

<a href="#ITEM1" class="jump" hidefocus>ITEM1</a>
<a href="#ITEM2" class="jump" hidefocus>ITEM2</a>
<a href="#ITEM3" class="jump" hidefocus>ITEM3</a>

<a><img src="expand.gif" alt="MENU" style="visibility: visible"></a>
</span>



cheers

Andy
 
Back
Top