Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pozycja Kursora - Nietypowo
Forum PHP.pl > Forum > Po stronie przeglądarki
Dagger
Witam!
Chcial bym udostepnic mojemu klientowi rozwiazanie za pomoca ktorego mogl by wskazac np. 2 dowolne punkty na mojej stronie ... te punkty przesylane byly by do mnie i zaznaczane na stronie. (chodzi o wskazywanie np. bledow itd.)

Teoretycznie wiem jak to zrobic ale nie potrafie tego przerobic w kod...

O ile sie nie myle mozna by to zrobic za pomoca warstw i funkcji onclick ...
Warstwa byla by umieszczana na calej stronie za pomoca pozycji bezwzglednej...
i procech powinien wygladac tak:
1. wyswietlenie strony
2. zalatowanie i wyswietlenie warstwy pierwszej
3. uzytkownik kliknie w dowolne miejsce na stronie (warstwie)
4. zapisanie pozycji kursora
5. ukrycie warstwy 1 i wyswietlenie warstwy 2
6. klikniecie przez uzytkownika
7. zapisanie pozycji kursora
8. np. ukrycie warstwy 2 i wyswietlenie 3 z przyciskiem "zapisz" ktory by obie pozycje wysylal do pliku pozycja.php

Jak mozna by to zrobic?

Z gory wielkie dzieki za pomoc.
Wankster
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>mouse</title>
    <style type="text/css">
  
  div.layer
  {
     display: none;
  }
  
    </style>
    <script type="text/javascript">
  
  var layers = new Array();
  var clicks = -1;
  
  function setVisibility( layer )
  {
     if ( layer !== false )
     {
    layer.style.display = layer.style.display == 'block' ? 'none' : 'block';
     }
  }
  
  function getLayers()
  {
     elements = document.getElementsByTagName( 'div' );
    
     for ( i = 0, j = 0; i < elements.length; i++ )
     {
    if ( /^layer\-[0-9]+$/.test( elements[ i ].id ) )
    {
        layers[ j++ ] = document.getElementById( elements[ i ].id );
    }
     }
  }
  
  function getLayer( key )
  {
     return layers[ key ] ? layers[ key ] : false;
  }
  
  function captureClicksPositions( e )
  {
     if( !e ) e = window.event;
    
     if ( e.pageX || e.pageY )
     {
    posx = e.pageX;
    posy = e.pageY;
     }
     else if ( e.clientX || e.clientY )
     {
    posx = e.clientX + document.body.scrollLeft;
    posy = e.clientY + document.body.scrollTop;
     }
    
     document.getElementById( 'clicks' ).value += clicks === -1 ? '' : ';';
     clicks++;
     document.getElementById( 'clicks' ).value += ( clicks + 1 ) + '=' + posx + 'x' + posy;
    
     if ( clicks < ( layers.length - 1 ) )
     {
    setVisibility( getLayer( clicks ) );
    setVisibility( getLayer( clicks + 1 ) );
     }
  }
  
  function initialize()
  {
     getLayers();
     setVisibility( getLayer( 0 ) );
    
     document.onmousedown = captureClicksPositions;
  }
  
  window.onload = initialize;
  
    </script>
</head>

<body>
    <div id="layer-1" class="layer">
  1
    </div>
    <div id="layer-2" class="layer">
  2
    </div>
    <div id="layer-3" class="layer">
  <input type="button" onclick="document.getElementById( 'positions' ).submit();" value="Zapisz" />
    </div>
    
    <form name="positions" id="positions" method="post" action="pozycja.php">
  <input type="text" name="clicks" id="clicks" value="0" style="display: none;" />
    </form>
</body>
</html>
Dagger
Dziekuje.

Juz sprawdzilem odrazu i dziala wlasnie tak jak chcialem :-) Do pliku php wysyla 3 pozycje kursora (ta trzecia to przycisk "zapisz") Ale z tym juz sobie poradze...
Jeszcze raz wielkie dzieki!
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.