![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 25.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
napisałem skrypt podpowiedzi w formie dymków/chmurek. Problem jest taki, że w IE, w przypadku gdy strona jest na tyle długa, że na ekranie pojawia się scroll, jeżeli najedziemy na link podpowiedzi, wówczas na ułamek sekundy scroll "skacze" na sam dół i powraca. W innych skryptach (dostępnych w sieci) tak się nie dzieje, próbowałem prawie wszystkich możliwości i nic... Dalej to samo. Po raz pierwszy wymiękłem i nic mi już do głowy nie przychodzi, stąd proszę Was o pomoc w zdiagnozowaniu problemu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Poniżej skrypt z dużą ilością znaczników <br />, tak aby pojawił się scroll i żebyście mogli zauważyć opisany wyżej, niechciany efekt.
Ten post edytował Vir 27.04.2005, 09:27:19 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
daj w href w onclick na koncu return false. Mi to zawsze pomagało
<a href="#" onclick="return false;" .... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 25.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odzew, ale nie o to chodzi.
Skopiuj kod, zapisz jako plik html, jeszcze raz przeczytaj tekst, a zobaczysz w czym problem (przy IE) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdrawiam |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No już wiem o co Ci chodzi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
W operze jest podobnie, ale mniej to widać. I nie mam pojęcia o co chodzi. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Klasa tooltip ustawia pozycje warstwy na absolute, ale nie nadaje jej zadnych wlasnosci ekranowych, wiec pojawia sie ona na samym dole dokumentu dopoki ktos nie poruszy myszka i nie nada mu jakis wlasnosci przekazanych z kursora. Dopiero wtedy przechodzi on gdzie trzeba.
Tutaj masz skrypt Elusia , ktory tez dynamicznie dodaje zdarzenia i wtedy jest mozliwe przekazanie obiektu event w Gecko. Ja niestety ustawiam zdarzenie za pomoca atrybutu i to kod wywolujacy juz jest wiec nie mam tego komfortu przekazywania event'ow jako parametr funkcji dlatego rozwiazalem to nieco inaczej - pokazuje warstw'e toolTipa dopiero wtedy gdy ktos poruszy myszka nad obiektem ktory wywoluje toolTip'a. Uznalem ze z dwojga zlego to jest nieco lepsze rozwiazanie. Powodzenia. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 25.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dzisiaj rano doznałem olśnienia i doszedłem do rozwiązania, które zamieszczam poniżej. Jak widać wystarczyła mała modyfikacja (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod /* Tooltips script v.1.0 Copyrights (c) 2005 Mariusz 'Vir' Grabczynski free for non-commercial use [please leave this comment intact] Parametrs (in 'title' attributes): | - new line [should be placed directly after words - whithout space] */ onload=function(d,b,a,i,nD,nDe,tV) { d=document;b=d.body;a=b.getElementsByTagName('a'); for(i=0;i<a.length;i++) { if(a[i].title) { nD=d.createElement('div');nD.className='tooltip';nD.id='tooltip';b.appendChild(nD); a[i].onmouseover=function() { b.appendChild(nD);tV=this.title;nD.innerHTML=this.title.replace(/\|/g,"<br />"); this.title=''; } a[i].onmousemove=function(e) { if(nDe=d.getElementById('tooltip')) { e=e||event; with(nDe.style){left=e.clientX+b.scrollLeft+'px';top=e.clientY+b.scrollTop+'px';} } } a[i].onmouseout=function() { t=d.getElementById('tooltip');if(nDe=t)b.removeChild(nDe);this.title=tV; } a[i].onclick=function() { return false; } } } } Ps. Jeżeli mamy ustawiony background-color w a:hover (css), wówczas problem pojawi się na nowo - rozwiązanie to usunięcie tego stylu. Pzdr |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 04:26 |