Autor Zpráva
tester
Profil *
Potřebuju poradit jak správně pozicovat výpis s informacemi který je umístěný v divu. K tomu používám div#panel a jquery. Div může mít libovolnou šířku, ale zpravidla se vleze do šířky. Problém mi nastává, když je výpis moc dlouhý. Div se zobrazí podle toho kde zrovna jsem na stránce, kam kliknu.

Když je div moc vysoký tak už mi div přesahuje do záporných hodnot na ose y. Ještě horší to je když jdu níže, scrolluju níž a kliknu a nic se mi nezobrazí nebo to prostě zmizelo asi někam moc nahoru na začátek stránky nebo do záporných hodnot.

Výpočet:

var ClientW = jQuery(window).width();
var ClientH = jQuery(window).height();  

// následuje smyčka která vkládá informace do div#panel ul

// dále výpočet pozice

var w = $('div#panel').width();
var h = $('div#panel').height();
var y = (e.clientY > ClientH - h )?ClientH-h*2:e.clientY-h;
var x = (e.clientX > ClientW - w )?ClientW-w:e.clientX;   
// Pak už jen pozicování divu

$('#panel').css({ left: x, top: y })
Mým záměrem bylo udělat to tak, aby div byl nad pozicí myší pokud je tam dost místa.

Anebo aby byl pod pozicí myší pokud je tam dost místa.

Prostě jde o to, aby byl vidět celý element div a nezasahovalo to do oblasti kam jsem klikl.
tester
Profil *
Tuším že problém je v tom že nastavuji left: a right: absolutní pozici od začátku dokumentu. Ale $(element).height() nastavuji číslo které se vztahuje pouze k aktuální obrazovce. Jak bych mohl zjistit jaká je vzdálenost od začátku dokumentu až po začátek aktuální obrazovky (levý horní okraj obrazovky)?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: