Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: warstwa obok kursora
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
MitS
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?
revyag
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
MitS
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?
revyag
Ale chyba masz tą funkcję gdzieś napisaną co ? W javascript nie ma czegoś takiego. Znajdź sobie na googlach jakąś interpretację.
MitS
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
Joy-machine
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
MitS
ok dzieki za informacje smile.gif

Dziś spróbuje coś napisac i jak by były problemy to sie odezwe winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.