Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> warstwa obok kursora
MitS
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

Ostrzeżenie: (0%)
-----


witam!

Szukam porady / źródeł / tutoriali itp. jak zrobić taki patent by po kliknięciu na link wyświetliła by mi sie warstwa (div) obok kursora ale by się nie przemieszczała razem z nim ... dodatkowo do javascript musze pobierać znaczniki po klasie (a nie po ID lub NAME)...

MAcie jakieś pomysły questionmark.gif?
Go to the top of the page
+Quote Post
revyag
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Jak to musisz pobierać "do javascript" ? Niby skąd pobierać ? Powinieneś napisać chyba że uzyskiwać dostęp do elementów przy pomocy nazwy klasy. To akurat łatwe, na googlach można sporo znaleźć.
getElementByClassName
a jeśli chodzi o pierwsze pytanie, to tu masz odpowiedź:
http://forum.php.pl/index.php?showtopic=34...amp;hl=position


--------------------
-------------

------
Go to the top of the page
+Quote Post
MitS
post
Post #3





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

Ostrzeżenie: (0%)
-----


Hmmm na ID niby działa ale gdy zamiast ID podstawie klase tak jak wyżej napisałeś to niestety ten kod nie działą sad.gif

Kod
<html>
<head>
<script type="text/javascript">
function pos() {
   if (window.Event) {
       document.captureEvents(Event.MOUSEMOVE);
   }
   document.getElementByClassName("test").onmousemove = function(e){
       x = (window.Event) ? e.pageX : event.clientX;
       y = (window.Event) ? e.pageY : event.clientY;
       document.getElementByClassName("head").style.left=x - 5;
       document.getElementByClassName("head").style.top=y - 15;
       document.getElementByClassName("head").style.display="block";
       document.getElementByClassName("w").innerHTML="mouseX:"+x+"<br />mouseY:"+y;
   }
   document.getElementByClassName("test").onmouseout=function() {
       document.getElementByClassName("head").style.display="none";
   }
}
window.onload = pos;
</script>
<style type="text/css">
div.head {
   width:50px;
   height:10px;
   background-color:red;
   position:absolute;
   display:none;
   z-index:1;
}
div.test {
   width:200px;
   height:100px;
   position:absolute;
   left:100px;
   top:300px;
   background-color:blue;
   z-index:0;
}
</style>
</head>
<body>
<div class="head"></div>
<span class="w"></span>
<div class="test">

</div>
</body>
</html>


czemu nie działą właśność getElementByClassName questionmark.gif?
Go to the top of the page
+Quote Post
revyag
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Ale chyba masz tą funkcję gdzieś napisaną co ? W javascript nie ma czegoś takiego. Znajdź sobie na googlach jakąś interpretację.


--------------------
-------------

------
Go to the top of the page
+Quote Post
MitS
post
Post #5





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

Ostrzeżenie: (0%)
-----


Tzn samą funkcje mam... jest taka:
  1. <?php
  2. function getElementsByClassName(clsName) 
  3. { 
  4. var arr = new Array(); 
  5. var elems = document.getElementsByTagName("*");
  6.  
  7. for ( var cls, i = 0; ( elem = elems[i] ); i++ )
  8. {
  9. if ( elem.className == clsName )
  10. {
  11. arr[arr.length] = elem;
  12. }
  13. }
  14. return arr;
  15. }
  16. ?>


ale to coś w tym kodzie co poprzednio podałem nie działa ... (sama funkcja jest dobra).
Pozdrawiam

----------
Prosze pamietac o bbcode
--
dr_bonzo
Go to the top of the page
+Quote Post
Joy-machine
post
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 2.02.2007

Ostrzeżenie: (0%)
-----


1. Znajdź inną funkcję getElementByClassName - najlepiej wersję z wyrażeniem regularnym i 3 parametrami - jest sprawdzona. Ta Twoja jest niezbyt wydajna.
2. Stosujesz parę razy "document.getElementByClassName("head")" - i pomijając fakt, że takie jej uzycie nie istnieje, to kompletnie źle używasz wyniku działania takich funkcji - to tak jakbyś wyjmował sztućce z szuflady pojedynczo i za każdym razem otwierał i zamykał szufladę. Plus to że Twoja funkcja jest mało wydajna (bo przelatuje pętlą po wszystkich obiektach na stronie!!!) to jeszcze ją wywołujesz parę razy pod rząd.
Np wynik (czyli obiekt) funkcji document.getElementById('xxx') zapisuj do zmiennej np "obj" o potem już tylko obj.style.xxx....
3. poza tym ok. smile.gif
Go to the top of the page
+Quote Post
MitS
post
Post #7





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

Ostrzeżenie: (0%)
-----


ok dzieki za informacje smile.gif

Dziś spróbuje coś napisac i jak by były problemy to sie odezwe winksmiley.jpg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:30