Powiększanie zdjęcia po najechaniu kursorem

Wszystko związane ze skryptami JS, DHTML itd.
aaaaaaaaaa1234
Posty: 3
Rejestracja: 23 lut 2013, 18:01:52
Płeć: Niewybrana
User Agent: Firefox Windows

Powiększanie zdjęcia po najechaniu kursorem

Post autor: aaaaaaaaaa1234 »

Mam problem z ustawieniem indeksu, czy też stosu. Jak najadę na obrazek to powiększa się czyli działa jak należy, ale nie jest wyżej niż obrazek z ogłoszenia niżej. Co zrobić, aby ogłoszenia na górze były najwyżej na stosie? Ewentualnie, aby nie przesuwało się w dół.

Link do strony gdzie można zobaczyć działanie powiększania grafiki ogłoszenia.

http://www.skrypt2.pusku.com/oferty.php?kategoria=17

Kod javascript do powiększania i zmniejszania obrazka:

Kod: Zaznacz cały

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript">
        var indexes = new Array();
        function zoomIn(item) {
            if(!indexes[item.attr('src')]) {
                item.stop();
                item.animate({
                    width: item.width() * 2 + 'px',
                    height: item.height() * 2 + 'px'
                }, 1000, function() {
                    indexes[item.attr('src')] = true;
                });
            }
        }
        function zoomOut(item) {
            if(indexes[item.attr('src')]) {
                item.stop();
                item.animate({
                    width: item.width() * 0.5 + 'px',
                    height: item.height() * 0.5 + 'px'
                }, 1000, function() {
                    indexes[item.attr('src')] = false;
                });
            }
        }
    </script>
Kod wstawiania ofert:

Kod: Zaznacz cały

<div class="first">

      <div class="grafikauz">
            <a href="image.php?id=<?php echo $zdjecie['id']; ?>">
             <img src="zdjecia/<?php echo $zdjecie['zdjecie']?>" width="115" height="165" onload="indexes[this.src] = true;" onmouseover="zoomIn($(this));" onmouseout="zoomOut($(this));" />
            </a>
        </div>

      .
      . Dalszy kod
      .
   
</div>

Kod style css:

Kod: Zaznacz cały

div.grafikauz
{
       position:relative; top: -37px; right:0px; bottom:0px; left: -15px; 
       z-index: 100;
       width: 200px; 
       border: solid red 0px;
}

div.first
    {
        width: 928px; 
        height: 170px;
        float: left;
        margin: 0 auto; 
        border: solid blue 0px;
        background-image: url('');
        text-align: center;
        background-repeat: no-repeat;
        background-position: center;
        position:relative; top: 0px; right:0px; bottom:0px; left: 4px; 
    }
Venite
Obsługa CBA
Posty: 3197
Rejestracja: 18 lut 2011, 08:01:57
Lokalizacja: Kędzierzyn-Koźle
Płeć: Mężczyzna
User Agent: Chrome Windows 1440x900

Re: Powiększanie zdjęcia po najechaniu kursorem

Post autor: Venite »

który div jest nadrzędny?

Dla nadrzędnego ustaw wysoki z-index, np. 1000. I to nie tylko dla diva, ale również dla obrazka (img).

Możesz utworzyć ID dla obrazka (img ID), albo klasę - class i tam dodać ten z-index w CSS. Potem w kodzie HTML gdzie masz "source" obrazka dodać dodatkowo atrybut class=. Chyba przy zdjęciach klasy i ID działały...
Czy wiesz, że:
  • W Panelu CBA w sekcji "wsparcie" jest dedykowany system ticketów (obsługi technicznej)
  • Odpowiadamy na Forum oraz na adres mailowy obsluga(malpa)cba.pl
  • Jesteśmy również na Facebooku! Znajdź nas na facebook.com/hostingcba | cba.pl
W czym jeszcze możemy pomóc?
Awatar użytkownika
piwo
Posty: 673
Rejestracja: 13 lip 2010, 16:13:44
Płeć: Niewybrana
User Agent: Firefox Windows 1152x864

Re: Powiększanie zdjęcia po najechaniu kursorem

Post autor: piwo »

W javie możesz manipulować stylami obiektu np. obiekt.style.color="#123456"

- Ustawiasz obrazkowi wysoki z-index (zIndex) (dzięki czemu jest na wierzchu)
- Ustawiasz obrazkowi position absolute (dzięki czemu wyskakuje z diva i całość się nie przesuwa razem z nim w czasie powiększenia)

czyli coś jak

Kod: Zaznacz cały

item.style.zIndex=tempZindex;
tempZindex += 1; 
Na początku gdzieś ustawiasz np tempZindex = 1000
jak przypisujesz go do obrazka to dodajesz +1 żeby następnym razem
kiedy przypiszesz to innemu obrazkowi było wyższe itd.

position: absolute lepiej dać od razu w CSS dzięki czemu 'nie rozwali się' w czasie zmiany.

Style którymi można manipulować w java script http://www.w3schools.com/jsref/dom_obj_style.asp

Poza tym chyba powinieneś to napisać inaczej albo przynajmniej jakiegoś fixa wstawić bo bug tam jest.
(jak w czasie powiększania się ucieknie myszką i najedzie z powrotem to można powiększać w nieskończoność)
{$signature}
aaaaaaaaaa1234
Posty: 3
Rejestracja: 23 lut 2013, 18:01:52
Płeć: Niewybrana
User Agent: Firefox Windows 1280x800

Re: Powiększanie zdjęcia po najechaniu kursorem

Post autor: aaaaaaaaaa1234 »

Tak zrobiłem, ale nie chwyta w ogóle.

Kod: Zaznacz cały

    <script type="text/javascript">
        var indexes = new Array();
        function zoomIn(item) {
            if(!indexes[item.attr('src')]) {
                item.stop();
                item.style.zIndex=tempZindex;
                tempZindex = 1000; 
                tempZindex += 1; 
                item.animate({
                    width: item.width() * 2 + 'px',
                    height: item.height() * 2 + 'px'
                }, 1000, function() {
                    indexes[item.attr('src')] = true;
                });
            }
        }
          .  
          . dalszy kod
          . 
ODPOWIEDZ