Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: JavaScript: Työkaluvihje

Sivun loppuun

Meitsi [09.10.2003 18:53:06]

#

Tällä skriptillä saa mihin tahansa nettisivun elementtiin työkaluvihjeen joka tulee esiin kun vie hiiren objektin päälle ja katoaa kun hiiren vie pois objekti päältä. Varustettu WindowsXP tyylisillä vihjeen sisään- ja uloshäivytyksillä. Vinkin taustan, tekstin, reunaviivan ja muita tyyliasetuksia voi säätää vapaasti, sillä ne ovat css tiedostossa.
Käyttöohjeet:
Laita sivun head-osioon nämä koodit:
<script src="tooltip.js"></script>
<link rel=stylesheet type="text/css" href="tooltip.css">
Laita dokumentin body tagiin tämä parametri:
onMouseMove="tooltip_update();"
Laita objekteihin näyttö- ja piilotusfunktioiden kutsut, esim:
<button onMouseOver="tooltip_show('teksti');" onMouseOut="tooltip_hide();">Tämä on esimerkkinappi</button>

* Ei toimi valittettavasti kuin IE:llä, feidausten takia. Yritän korjata joskus, kun kerkiän, systeemin toimimaan kaikilla selaimilla...

tooltip.js

/*

T Y Ö K A L U V I H J E  -  S K R I P T I

By:

Square35


Tätä skriptiä saa levittää vapaasti,
kunhan säilytät kommenttiosat
muokkaamattomana. Myöskin tämän koodin
levittäminen muokattuna on kiellettyä, levitä
vain alkuperäisiä tiedostoja.
*/

/*
Funktio tooltip_prepare, alustaa
tarvittavat muuttujat ja tulostaa
ruudulle työkaluvihje-layerin.
Tämän funktion kutsu on skriptin lopussa,
sitä ei tarvi kutsua uudelleen.
*/
function tooltip_prepare()
{
    document.write("<div id='tt'><input type=text id='tttext'></input></div>");
    ttx=""
    tty=""
    document.all("tttext").style.filter="alpha(opacity=0);";
    tooltip_fadep="0";
}
/*
Funktio tooltip_fade_in pitää huolen
työkaluvihjeen sisäänfeidauksesta.
*/
function tooltip_fade_in()
{
    if (tooltip_fadep>=0&&tooltip_fadep<=100)
    {
        tooltip_fadep+=10;
        document.all("tttext").style.filter="alpha(opacity="+tooltip_fadep+");";
        fadetimer=setTimeout("tooltip_fade_in();", 1)
	} else {
	tooltip_fadep=100;
	}
}
/*
Funktio tooltip_fade_out pitää huolen
työkaluvihjeen ulosfeidauksesta.
*/
function tooltip_fade_out()
{
	if (tooltip_fadep>0) {
		tooltip_fadep-=10;
		document.all("tttext").style.filter="alpha(opacity="+tooltip_fadep+");";
		fadetimer=setTimeout("tooltip_fade_out();", 1)
	} else {
	tooltip_fadep=0;
	}
}
/*
Funktio tooltip_hide piilottaa
työkaluvihjeen. Tämän funktion kutsu
sijoitetaan sen objektin onMouseOut-
tapahtumakäsittelijään, johon on
laitettu tooltip_show-kutsu.
Esimerkki:
onMouseOut="tooltip_hide();"
*/
function tooltip_hide()
{
	tooltip_fadep="100";
	tooltip_fade_out();
}
/*
Funktio tooltip_show(text)
näyttää työkaluvihjeen ja
asettaa sen tekstin. Haluttu
teksti annetaan text-parametrissä.
Tämän funktion kutsu laitetaan
sen objektin onMouseOver-
tapahtumakäsittelijään, jonhon
työkaluvihje halutaan.
Esimerkki:
onMouseOver="tooltip_show('Vihje');"
*/
function tooltip_show(text)
{
	tooltip_fadep="0";
	ttx=event.x;
	tty=event.y;
	ttx+=10;
	tty+=10;
	document.all("tt").style.top=tty;
	document.all("tt").style.left=ttx;
	document.all("tttext").value=text;
	tooltip_fade_in();
}
/*
Funktio tooltip_update päivittää
työkaluvihjeen paikan ja
pitää sen tietyn matkan päässä
hiirestä. Tämän funktion kutsu
laitetaan sen sivun body-tagin
onMouseMove-
tapahtumakäsittelijään, missä
halutaan työkaluvihjeitä näyttää.
Tämä kutsu tarvii olla vain kerran.
Esimerkki:
onMouseMove="tooltip_update();";
*/
function tooltip_update()
{
	ttx=event.x;
	tty=event.y;
	ttx+=20;
	tty+=10;
	document.all("tt").style.top=tty;
	document.all("tt").style.left=ttx;
}
tooltip_prepare();

tooltip.css

#tt {position:absolute; border-width:0px:}
#tttext {border-width:0px; background-color:gold; width:200px; filter: alpha(opacity=100);}

esimerkki.html

<html>
<head>
<script src="tooltip.js"></script>
<link rel=stylesheet type="text/css" href="tooltip.css">
<title>Tooltips</title>
</head>
<body onMouseMove="tooltip_update();">
<p>Tavallista tekstiä. Buttoni, johon on liitetty tooltippi: <button onMouseOver="tooltip_show('Heippa');" onMouseOut="tooltip_hide();">Siirä hiiri tämän painikkeen päälle nähdäksesi tooltipin</button>
<p>Lisää esimerkkejä: <input type="text" value="testaus" onMouseOver="tooltip_show('Testi');" onMouseOut="tooltip_hide();"></input><br><img src="" alt="" onMouseOver="tooltip_show('Tämä kuva ei toimi...');" onMouseOut="tooltip_hide();">
<p><font onMouseOver="tooltip_show('Tekstiä!!');" onMouseOut="tooltip_hide();">Tähän tekstiin on lisätty tooltip!</font></p>
</body>
</html>

Jesoft [09.10.2003 19:50:05]

#

Hirveesti tekstii

Meitsi [09.10.2003 20:15:50]

#

Onhan sitä, mutta kommentit ovat siitä suurin osa.

Meitsi [09.10.2003 20:28:24]

#

Osa koodista on aika purkkaa, kun ei tahtonu millään ruveta toimimaan. Siinä on vieläkin pikku bugi. Kun vetäsee hiiren objektin päältä nopeasti explorerin työkalupalkin päälle, se vinkki jää näkyviin. Jos joku tietää miten sen saisi korjattua olisin tosi kiitollinen.

NiLon [10.10.2003 02:38:11]

#

JavaScriptin haittapuoli on just toi. Scriptistä tulee pitkää ja kaikki on näkyvissä lähdekoodis, jota on sit kiva lueskella. Ja miten saa noin pitkän pätkän tekstii noin pienestä jutusta :) JavaScriptiin pitäis kyl saada joku feature et sen vois jotenki tulkata pimennos.

sooda [10.10.2003 10:13:22]

#

tosta vois olla valmis systeemi vaik sun sivuilla... mä oon nii laiska et ei millää jaksais kopioida... jooko

Meitsi [10.10.2003 13:49:33]

#

Tuolla on esimerkki: http://www.members.lycos.co.uk/dizzyproductions/tooli.html

Meitsi [10.10.2003 13:51:16]

#

Voitteko laittaa linkkejä screenshotteihin jos olette löytäneet jotakin muitakin bugeja?

T.M. [10.10.2003 17:39:04]

#

karseeta koodia kun noin paljon kommentteja välissä. ja mitä järkee pistää kaksi CSS-määritystä omaan tiedostoonsa??

NiLon [10.10.2003 17:46:00]

#

Toimiiko toi sivu kaikilla? Itselläni tulee "sivua ei löydy".

T.M. [10.10.2003 18:14:44]

#

ai niin tossa onkin esimerkki, noh, tämän perusteella ihmettelen miksi näin bugista scriptiä on edes tänne hyväksytty.

ja älä käytä lycosia, pelkkää mainosta mainosten perään.

odys [10.10.2003 22:42:10]

#

Hyi mikä kauhistus. Ei sisennyksiä eikä mitään ja JavaScript on muutenkin kohtalaisen turha keksintö :)

Meitsi [11.10.2003 18:03:05]

#

Se on mun eka tänne hyväksytty vinkki, älkää naurako...

Knaitti [01.03.2004 22:13:44]

#

kyl mul ainaki toimii...

shinmai [19.04.2004 20:35:35]

#

Ei taida pahemmin !IE selaimilla toimia? Ainakaan Mozilla eikä Firebird ei suostuneet moista näyttelemään..

Meitsi [23.04.2004 16:41:26]

#

Joo kun toi filtteröinti on explorerin omia lisukkeita niin ei toimi kun sillä.

hohoo [14.11.2004 13:59:41]

#

Firefox 1.0:lla sivu näkyi aivan p**kana
http://koti.mbnet.fi/kuukke/data/ei_toimi.PNG

Meitsi [04.12.2004 18:42:29]

#

Joo toi on ihan kamalaa koodia kun nyt myöhemmin miettii. On tullu paljo uusia asioita nyt opittua joten ehkä joskus kerkiän tuonkin korjata toimimaan kaikilla selaimilla...


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta