By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,717 Members | 1,233 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,717 IT Pros & Developers. It's quick & easy.

Changing mouse into hourglass over all objects including drop downs

P: n/a
I know this works on all objects except drop down boxes.

doc = document.all
for (i=0;i<doc.length;i++)
{
doc(i).style.cursor = 'wait';
}

Is it possible to make a cursor into an hourglass over a drop down?

Jul 22 '06 #1
Share this Question
Share on Google+
5 Replies


P: n/a
mc*******@wright.edu wrote:
I know this works on all objects except drop down boxes.

doc = document.all
document.all is a proprietary MS feature that has been copied to some
extent by other browsers, but can be considered deprecated (since IE 5)
in favour of appropriate W3C standards - in this case,
document.getElementsByTagName should do the trick but may not be necessary.

Using script to do style stuff is clumsy and should really only be done
where there is no other way.

for (i=0;i<doc.length;i++)
{
doc(i).style.cursor = 'wait';
}

Is it possible to make a cursor into an hourglass over a drop down?
If by 'drop down' you mean an HTML select element, yes. You can use a
'wait' cursor over all select elements using CSS:

<style type="text/css">
select {cursor: wait;}
</style>

You can use selectors to change the cursor based on the element's id or
class attributes. You can also use in-line styles:

<select style="cursor: wait;" ... >
Do you still want to use script?
--
Rob
Jul 23 '06 #2

P: n/a
On Sun, 23 Jul 2006 13:24:06 +1000, RobG <rg***@iinet.net.auwrote:
>mc*******@wright.edu wrote:
>for (i=0;i<doc.length;i++)
{
doc(i).style.cursor = 'wait';
}

Is it possible to make a cursor into an hourglass over a drop down?

If by 'drop down' you mean an HTML select element, yes. You can use a
'wait' cursor over all select elements using CSS:

<style type="text/css">
select {cursor: wait;}
</style>

You can use selectors to change the cursor based on the element's id or
class attributes. You can also use in-line styles:

<select style="cursor: wait;" ... >
Do you still want to use script?
The script above is equivalent to using the above.

OP - the better approach to this is not to change every cursor -
that's really, really slow - just add a mousemove handler to the page
and change the cursor of the element under the cursor, much more
efficient.

Jim.
Jul 23 '06 #3

P: n/a
Jim Ley wrote:
On Sun, 23 Jul 2006 13:24:06 +1000, RobG <rg***@iinet.net.auwrote:
>mc*******@wright.edu wrote:
[...]
>>Is it possible to make a cursor into an hourglass over a drop down?
If by 'drop down' you mean an HTML select element, yes. You can use a
'wait' cursor over all select elements using CSS:

<style type="text/css">
select {cursor: wait;}
</style>

You can use selectors to change the cursor based on the element's id or
class attributes. You can also use in-line styles:

<select style="cursor: wait;" ... >
[...]
>
The script above is equivalent to using the above.

OP - the better approach to this is not to change every cursor -
that's really, really slow - just add a mousemove handler to the page
and change the cursor of the element under the cursor, much more
efficient.
Do you mean something like:

<script type="text/javascript">

function doWait(e){
var tgt = e.target || e.srcElement;
if (tgt && tgt.tagName && tgt.style){
if ('select' == tgt.tagName.toLowerCase()){
tgt.style.cursor = 'wait';
} else {
tgt.style.cursor = 'normal';
}
}
}

</script>

<body onmouseover="doWait(event);"... </body>
I think CSS provides a much more elegant solution.
--
Rob
Jul 23 '06 #4

P: n/a

RobG wrote:
Jim Ley wrote:
On Sun, 23 Jul 2006 13:24:06 +1000, RobG <rg***@iinet.net.auwrote:
mc*******@wright.edu wrote:
[...]
>Is it possible to make a cursor into an hourglass over a drop down?
If by 'drop down' you mean an HTML select element, yes. You can use a
'wait' cursor over all select elements using CSS:

<style type="text/css">
select {cursor: wait;}
</style>

You can use selectors to change the cursor based on the element's id or
class attributes. You can also use in-line styles:

<select style="cursor: wait;" ... >
[...]

The script above is equivalent to using the above.

OP - the better approach to this is not to change every cursor -
that's really, really slow - just add a mousemove handler to the page
and change the cursor of the element under the cursor, much more
efficient.

Do you mean something like:

<script type="text/javascript">

function doWait(e){
var tgt = e.target || e.srcElement;
if (tgt && tgt.tagName && tgt.style){
if ('select' == tgt.tagName.toLowerCase()){
tgt.style.cursor = 'wait';
} else {
tgt.style.cursor = 'normal';
}
}
}

</script>

<body onmouseover="doWait(event);"... </body>
I think CSS provides a much more elegant solution.
--
Rob
I found this script which uses the BODY method:

<html>
<head>
<script type="text/javascript">

function Change_Cursor(Param1)
{
document.body.style.cursor = Param1
}

</script>

<body>

<a href="#" onclick="Change_Cursor('wait')">Change Cursor to
Wait</a><br>
<a href="#" onclick="Change_Cursor('pointer')">Change Cursor to
Pointer</a><br>
<a href="#" onclick="Change_Cursor('default')">Change Cursor to
Default</a><br>

<form>
<select>
<option>ABCDFEGHIJKLMNO</opion>
<option>PQRSTUVWXYZ1234</opion>
<option>567890ABCDFEGHI</opion>
</select>
</form>

</body>

</html>

Problem is, when you moueover elements like the LINKS or the SELECT
box, it reverts to the default behavior for those items.

Maybe you should step through every node stemming from the BODY and
change it over? And then to reset re-step and change settings back to
default?

Someone must have code this already, right?

Giggle Girl

Jul 25 '06 #5

P: n/a

mc*******@wright.edu wrote:
I know this works on all objects except drop down boxes.

doc = document.all
for (i=0;i<doc.length;i++)
{
doc(i).style.cursor = 'wait';
}

Is it possible to make a cursor into an hourglass over a drop down?
I assume what you want to do is turn the hourglass on and off when
something is happening.

One solution would be to size a floating DIV to cover the whole page
with a z-index high enough to ensure it is in front of all other
elements and set the cursor just for that DIV.

You can then just show/hide the DIV as you see fit. This has the
side-effect of disabling all the elements on the page which may or may
not be what you want.

Jul 26 '06 #6

This discussion thread is closed

Replies have been disabled for this discussion.