Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery][JavaScript] Zmiana diva przy mouseover
koryx
post 3.06.2014, 12:18:27
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.11.2013

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


Mam na stronie kilka obrazków i chciałbym aby po najechaniu na któryś zmieniała się jego wartość "opacity". Kod html wygląda tak:

Kod
<div id="mojdiv" class="sekcja2">
<p><img src="img1.jpg" alt="1" id="p1"  /><span id="p11" class="podpis">podpis</span></p>
<p><img src="img2.jpg" alt="2" id="p2"  /><span id="p22" class="podpis">podpis2</span></p>
....
</div>


napisałem 2 funkcje:

Kod
$( "#p1" ).mouseover(function() {
  $( "#p1" ).animate( { opacity: 1 },  { duration:500 });
  $( "#p11" ).fadeIn( 500 );
} );

$( "#p1" ).mouseout(function() {
  $( "#p1" ).animate( { opacity: 0.6 },  { duration:500 });
  $( "#p11" ).fadeOut( 500 );
} );


Powyższy skrypt działa dla pierwszego obrazka jednak chciałbym to jakoś usprawnić żeby nie pisać osobnej funkcji dla każdego elementu img a dla wszystkich w tym divie ale mając na uwadze, że na stronie znajdują się również inne obrazki, które mają nie mieć nic wspólnego z tą funkcją.

Poniższa funkcja działa na wszystkie obrazki w divie równocześnie a mi chodzi żeby tylko na 1 konkretny.
Kod
$( "#mojdiv" ).mouseover(function() {
  $( "img" ).animate( { opacity: 1 },  { duration:500 });
  $( "span" ).fadeIn( 500 );
} );


ps. czy każdy element img musi mieć id żeby je rozróżniać czy jest jakiś inny sposób?
Go to the top of the page
+Quote Post
nospor
post 3.06.2014, 12:20:03
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nadaj obrazkom, ktore chcesz obrabiać, jakąś klase, i rob co chcesz tylko dla tej klasy


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
koryx
post 3.06.2014, 12:41:20
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.11.2013

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


Tylko wtedy też będą się zmieniały wszystkie obrazki posiadające daną klasę. Bardziej chciałem żeby zmieniał się tylko jeden konkretny obrazek na który najadę myszką. Coś poszukałem i wydaje mi się (jeśli myślę prawidłowo), że trzeba jakoś użyć funkcji getElementById ale nie bardzo wiem w jaki sposób należy to zrobić tutaj.
Go to the top of the page
+Quote Post
Turson
post 3.06.2014, 12:43:03
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Kod
$('.mojdiv img').mouseover(function(){
$(this).animate( { opacity: 1 },  { duration:500 });
$(this).fadeIn( 500 );
})
Go to the top of the page
+Quote Post
koryx
post 3.06.2014, 13:12:07
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.11.2013

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


super, o to chodziło, dziękuję

tylko 1 rzecz jeszcze smile.gif ... w tym samym divie jest opis w znaczniku span, który miał się dodatkowo pojawiać, przy powyższym rozwiązaniu animacja działa tylko na obrazek
Go to the top of the page
+Quote Post
ziolo
post 3.06.2014, 13:22:14
Post #6





Grupa: Zarejestrowani
Postów: 82
Pomógł: 20
Dołączył: 17.01.2009
Skąd: Kraków

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


  1. $('.mojdiv img').mouseover(function(){
  2. $(this).animate( { opacity: 1 }, { duration:500 });
  3. $(this).next().fadeIn( 500 );
  4. })


Next i znajduje ci kolejny element czyli span

Ten post edytował ziolo 3.06.2014, 13:23:01
Go to the top of the page
+Quote Post
koryx
post 3.06.2014, 14:46:59
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.11.2013

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


dziękuję, działa jak chciałem
Go to the top of the page
+Quote Post
nospor
post 3.06.2014, 15:14:56
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Tylko wtedy też będą się zmieniały wszystkie obrazki posiadające daną klasę. Bardziej chciałem żeby zmieniał się tylko jeden konkretny obrazek na który najadę myszką.
mouseover nie dziala na wszystkie naraz, tylko w danej chwili na jeden.... Staraj sie czasem pomyslec nad tym co piszesz.

Turson podal: $('.mojdiv img'
A w mojej wersji mialo byc: $('.klasa_nadana_obrazkom_ktore_cie_interesują'


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:46