Show text on Hover

Discussion in 'Javascript' started by Matt, Sep 22, 2005.

  1. Matt

    Matt Guest

    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.
     
    Matt, Sep 22, 2005
    #1
    1. Advertising

  2. Matt

    pipe Guest

    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>
     
    pipe, Sep 22, 2005
    #2
    1. Advertising

  3. Matt

    RobG Guest

    Matt wrote:
    > 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>




    --
    Rob
     
    RobG, Sep 22, 2005
    #3
  4. Matt

    ASM Guest

    Matt wrote:
    > 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>


    --
    Stephane Moriaux et son [moins] vieux Mac
     
    ASM, Sep 23, 2005
    #4
  5. Matt

    ASM Guest

    ASM, Sep 23, 2005
    #5
  6. Matt

    RobG Guest

    ASM wrote:
    > pipe wrote:
    >
    >> i wrote this a while ago, hope it helps

    >
    >
    > I have that (working on click) :
    >
    > http://perso.wanadoo.fr/stephane.moriaux/truc/td_info_bulle_layers_click.htm
    >


    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>


    --
    Rob
     
    RobG, Sep 23, 2005
    #6
  7. Matt

    Robi Guest

    Matt wrote in message news:...
    > 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.
     
    Robi, Sep 23, 2005
    #7
  8. Matt

    ASM Guest

    RobG a écrit :
    > ASM wrote:
    >
    >> I have that (working on click) :
    >>
    >> http://perso.wanadoo.fr/stephane.moriaux/truc/td_info_bulle_layers_click.htm

    >
    >
    > 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 ?)

    --
    Stephane Moriaux et son [moins] vieux Mac
     
    ASM, Sep 23, 2005
    #8
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Manny Goldman

    Display TITLE text on hover

    Manny Goldman, Oct 3, 2004, in forum: HTML
    Replies:
    4
    Views:
    1,398
  2. T.J.
    Replies:
    4
    Views:
    812
  3. David Segall

    Text below image on hover

    David Segall, Jan 17, 2006, in forum: HTML
    Replies:
    15
    Views:
    1,684
    David Segall
    Jan 20, 2006
  4. lrantisi
    Replies:
    2
    Views:
    313
    Andrew Thompson
    Nov 26, 2006
  5. Menu control and hover text color

    , Jul 10, 2006, in forum: ASP .Net Web Controls
    Replies:
    1
    Views:
    343
    Alessandro Zifiglio
    Jul 12, 2006
Loading...

Share This Page