Show text on Hover

M

Matt

Is there a way to increase the amount of time a hyperlink title
displays or show the desired text using javascript?

<a title="This is the title text displayed on hover.">Displayed
Text</a>

The above HTML will display the title text when the mouse is hovered
over the displayed text but it disappears quickly.

There may be a better way to display text on hover using javascript but
I do not know how.
 
P

pipe

i wrote this a while ago, hope it helps

<script>
function hide_tooltip(){
document.getElementById("tooltipper").style.left=0
document.getElementById("tooltipper").style.top=0
document.getElementById("tooltipper").style.width=1;
document.getElementById("tooltipper").style.height=1;
document.getElementById("tooltipper").innerHTML="";
}
function show_tooltip(event,txt){
document.getElementById("tooltipper").style.left=event.clientX+20
document.getElementById("tooltipper").style.top=event.clientY+30
document.getElementById("tooltipper").style.width=300;
document.getElementById("tooltipper").style.height=150;
document.getElementById("tooltipper").innerHTML=txt;

}

</script>

<a href=# onmouseover="javascript:show_tooltip(event,'damn')"
onmouseout="javascript:hide_tooltip()" style='color:red'>link</a>";


<div id='tooltipper'
style='position:absolute;left:0;top:0;width:1;height:1;border:1px solid
black;background-color:rgb(250,250,255)'></div>
 
R

RobG

Matt said:
Is there a way to increase the amount of time a hyperlink title
displays or show the desired text using javascript?

<a title="This is the title text displayed on hover.">Displayed
Text</a>

The above HTML will display the title text when the mouse is hovered
over the displayed text but it disappears quickly.

There may be a better way to display text on hover using javascript but
I do not know how.

JavaScript has no control over how long tool tips are displayed for, or
even whether they are displayed at all. It is common for browsers to
show a tool tip where an element has an alt or title attribute value,
but that is not consistent across all browsers.

There are some pseudo tool-tip scripts at the link below, but they may
be a bit over the top (beware of pop ups when entering the site).

<URL:http://www.walterzorn.com/tooltip/tooltip_e.htm>

I'm also not fond of tool tips that follow the cursor, they become an
annoyance.

You might want to poke around quirksmode.org, it has all you need to
know about cursor and element position so that you can build your own
'tool tip' that works in most browsers:

Cursor position:
<URL:http://www.quirksmode.org/js/events_properties.html>

Element position:
<URL:http://www.quirksmode.org/js/findpos.html>
 
A

ASM

Matt said:
Is there a way to increase the amount of time a hyperlink title
displays or show the desired text using javascript?

<a title="This is the title text displayed on hover.">Displayed
Text</a>

The above HTML will display the title text when the mouse is hovered
over the displayed text but it disappears quickly.

There may be a better way to display text on hover using javascript but
I do not know how.

working with only css on "normal" browser
and with JS in IE
try this (title replaced by a span in link text :

<html>
<a href="#here" id="here">Displayed Text
<span>This is the <strong>title text</strong> displayed on hover.
<br>And I can add some lines if I want
<br><em>Only if I use tag</em> <tt>&lt;br&gt;</tt>
<br>
<br>Tag <tt>&lt;P&gt;</tt> is absolutly <u><b>forbiden</b></u> here
</span>
</a>

<style type="text/css">
a { position: relative; text-decoration: none; }
a span { display: none; position: absolute;
border: 1px solid blue; color: blue;
background: #ff9; padding: 5px;
font-family: geneva, arial, verdana;
}
a em { color: red }
a tt { color: black; font-size: 1.5em; }
a:hover { background: yellow }
a:hover span { display: block }
</style>

<script type="text/javascript">
// script to put in all end of page
function roll(theLink) {
if(theLink.getElementsByTagName('SPAN')) {
var a = theLink.getElementsByTagName('SPAN')[0];
a.style.display = a.style.display==''? 'block' : '';
}
}
function setIE() {
var L = document.links;
for(var i=0;i<L.length;i++) {
L.onmouseover= function(){roll(this);};
L.onmouseout= function(){roll(this);};
}
}
var ie=false; /*@cc_on ie=true; @*/
if(ie) setIE();
</script>
</html>
 
R

RobG

ASM said:

Not in Firefox - clientX/Y are for IE and sycophants. Try the
following, it finds the cursor position using the quirksmode reference I
quoted earlier:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Demo</title>

<style type="text/css">

..toolTip {
border: 1px solid #999999;
background-color: #dddddd;
position: absolute;
padding: 1px 5px 1px 5px;
}

..buttonSet {
font-family: arial, sans-serif;
color: #336699;
background-color: #ffffff;
float: left;
border: 1px solid #999999;
}

</style>

<script type="text/javascript">

// The tool tip is created and referenced as a global object
var tipDiv;
function genToolTip()
{
if (document.createElement) {
tipDiv = document.createElement('div');
document.body.appendChild(tipDiv);
tipDiv.appendChild(document.createTextNode('initial text'));
tipDiv.className = 'toolTip';
tipDiv.style.display = 'none';
}
}

window.onload = genToolTip;

function showTip(e, txt)
{
if ( tipDiv ) {
var e = e || window.event;
var xy = cursorPos(e);
tipDiv.firstChild.data = txt;
tipDiv.style.left = (xy[0] + 5) + 'px';
tipDiv.style.top = (xy[1] + 15) + 'px';
tipDiv.style.display = '';
}
}

function hideTip()
{
if ( tipDiv ) {
tipDiv.style.display = 'none';
}
}

// Based on quirskmode 'get cursor position' script
function cursorPos(e){
if (e.pageX || e.pageY) {
return [ e.pageX, e.pageY ];
} else if (e.clientX || e.clientY) {
return [
e.clientX + document.body.scrollLeft,
e.clientY + document.body.scrollTop
];
}
}

</script>

</head>
<body>
<div>
<a href="#"
onmouseover="showTip(event,'customisable tool tip')"
onmouseout="hideTip()">Mouse over the tip</a>
</div>
</body></html>
 
R

Robi

Matt wrote in message news:[email protected]...
Is there a way to increase the amount of time a hyperlink title
displays or show the desired text using javascript?

<a title="This is the title text displayed on hover.">Displayed
Text</a>

The above HTML will display the title text when the mouse is hovered
over the displayed text but it disappears quickly.

There may be a better way to display text on hover using javascript but
I do not know how.

food for thought:

If someone has javascript disabled or browses with a non javascript
capable browser, you might want to keep those title attributes.

A neat solution would be to create a function which checks if the
underlying element contains a title then display it via javascript
removing at the same time the title attribute. On onmouseout,
adding the title attribute back and hiding the displayed tooltip.

I'm not sure if removing the title attribute is necessary, or if
displaying the tooltip text through onmouseover would suffice,
but somehow I doubt the latter.


This way, if a browser doesn't javascript, the tooltip title is still
being displayed.
 
A

ASM

RobG a écrit :
Not in Firefox

I don't know , but ... it seemed to works on mine
- clientX/Y are for IE and sycophants.

well, that's true, I'd forget pageX pageY :-(
Try the
following, it finds the cursor position using the quirksmode reference I
quoted earlier:

thank you, it is on my HD (for next time ?)
 

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,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top