Autor Zpráva
Railbot
Profil
Potreboval bych nasledujici a nevim jak, js neovladam. Budu rad za kazdou dobrou radu a navod.

Mam DIV a v nem text-slovo, pricemz ten DIV ma pevnou sirku, ale ruznou vysku. Po najeti na text bych potreboval, aby se pod kurzorem mysi zobrazil dalsi DIV, malicky, male okynko (zacina pod kurzorem levym rohem, ale to je asi jen vec pozicovani, spis jde o to funkci). A pri pohybu kurzoru pryc z textu ten DIV zase zmizi. Tady si nevim rady s tim, jak zajistit, aby se zobrazoval vzdy pod kurzorem mysi.

Druha cast - zaroven bych potreboval, aby se ten maly DIV nezobrazoval mimo onen puvodni DIV, ale aby javascript vypocitaval kolik mista zbyva vlevo a dole podle toho ten maly DIV pozicoval. Zkratka, aby se ten maly DIV z casti neschovaval za jine prvky co budou okolo. Takze kdyz dole nebude misto, zobrazi se nad kurzorem mysi, ne pod nim dole, kde uz neni misto.

Celkove mi jde o ten tezsi zaklad, funkce - javascript, ktery to bude vykonavat. CSS celkove neni problem (ono pozicovani a tridy).

Pokud by byl nekdo ochotny pomoci, budu velmi rad. Odvdecit se muzu vlidnym slovem a popripade nejako usluzbou v podobe kodovani, kdyby bylo potreba na oplatku ;)

Budu kazdemu vdecny za reseni kterekoli casti meho dotazu, diky
venca12
Profil
Celé to je docela komplexní záležitost, ale jak to vidím já, tak první věc, kterou potřebuješ znát jsou souřadnice myší. Ty získáš tak, že si na událost onmousemove nad dokumentem píchneš něco co ti je bude vracet, třeba takhle:
function get_coordinates ( e )

{
if(document.getElementById)
{

x = (ie5)?event.x:(ns6)?clientX=e.clientX:false;
y = (ie5)?event.y:(ns6)?clientY=e.clientY:false;

}
}
document.onmousemove = get_coordinates;
Tím dostaneš do x a y souřadnice myši.

Další věc kterou potřebuješ znát jsou souřadnice a rozměry toho elementu (divu) nad kterým chceš ten hint za kurzorem zobrazit. Tyhle informaci zjistíš, nějak takhle:
document.getElementById('id_divu').Top; // souradnice y

document.getElementById('id_divu').Left; // souradnice x
document.getElementById('id_divu').Width; // souradnice sirka
document.getElementById('id_divu').Height; // souradnice vyska
. Rozhodně ti doporučuji nainstalovat si FireFox s DOM inspektorem. Ve struktuře dokumentu se proklikáš až na tebou požadovaný element a zjistíš, jaké má vlastnosti které by jsi mohl ve svém záměru použít. Na zkoušku můžeš použít i tenhle jednoduchý bookmarkový DOM Inspektor http://slayeroffice.com/tools/modi/v2.0/modi_help.html.

Za třetí musíš nějak nastavit pozici toho hintu za myší. Nejspíš to bude nejlepší udělat, jako absoultně pozicovaný div, s pevně stanovenými rozměry, kterému budeš po změně souřadnic myši měnit i pozici nastavenou ve stylech. Nějak takhle:
	element.style.left = x;

element.style.top = y;
Vlastnosti Top a Left samotného elementu (viz. výše) jsou pouze pro čtení, takže je nelze pro nastavení pozice použít.

Potom už jenom zbývá slepit všechno do hromady, kombinací pozic, výšek, šířek a podmínek, jestli není některá z nich překročena. Btw. bez DOM inspektoru se určitě neobejdeš, mrkni na něj...
Railbot
Profil
venca12
Mockrat diky! DOM inspektora si sezenu a zkusim to dat nejak dohromady, snad se to aspon trochu povede. Kazdopadne jeste jednou ti dekuju za tvoji ochotu pomoci. Mej hezky zbytek dne
Toto téma je uzamčeno. Odpověď nelze zaslat.