Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Podmiana obrazka w linku, Obrazek i tekst w linku
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Mam coś takiego:
  1. <a href="#"><img src="dot4a.gif"/>Wymiana taboru<br/></a>
  2. <a href="#"><img src="dot4a.gif"/>Nowy punkt obsługi<br/></a>
  3. <a href="#"><img src="dot4a.gif"/>Jest nas więcej<br/></a>

dot4a.gif to zielone słoneczko
dot4b.gif to pomarańczowe słoneczko

chcę zrobić aby po najechaniu na linka słoneczko zmieniło się z zielonego na pomarańczowe, czyli coś takiego (myszką najechałem na środkowy link):
(IMG:http://www.logistyka.x12.pl/2.GIF)

na razie wydziergałem coś takiego:
  1. function $(id){
  2. return document.getElementById(id);
  3. }
  4.  
  5. function zmien_obrazek(obrazek){
  6. $(obrazek).src="dot4b.gif";
  7. }
  8.  
  9. function przywroc_obrazek(obrazek){
  10. $(obrazek).src="dot4a.gif";
  11. }
  12. <a href="#" onmouseover="zmien_obrazek('menuimg1');" onmouseout="przywroc_obrazek('menuimg1');"><img id="menuimg1" src="dot4a.gif"/>Wymiana taboru<br/></a>
  13. <a href="#" onmouseover="zmien_obrazek('menuimg2');" onmouseout="przywroc_obrazek('menuimg2');"><img id="menuimg2" src="dot4a.gif"/>Nowy punkt obsługi<br/></a>
  14. <a href="#" onmouseover="zmien_obrazek('menuimg3');" onmouseout="przywroc_obrazek('menuimg3');"><img id="menuimg3" src="dot4a.gif"/>Jest nas więcej<br/></a>

ale to chyba o dupę rozbić - pewnie da się jakoś w css :/

Dzięki!

Ten post edytował TomASS 7.08.2007, 13:17:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Daj to słonko jako tło dla <a> i na zdarzenie najechania myszki na <a> zdefiniuj w CSS podmianę tła.
Możesz przeciez to zrbić w pseudoklasie :hover dla <a>

  1. <style type="text/css">
  2. a.menu {
  3. background: url('dot4a.gif') left no-repeat;
  4. }
  5.  
  6. a.menu:hover {
  7. background: url('dot4b.gif') left no-repeat;
  8. }
  9.  
  10. <a href="" class="menu">jeden</a>
  11. <a href="" class="menu">dwa</a>
  12. <a href="" class="menu">trzy</a>


Coś takiego
Go to the top of the page
+Quote Post
exseerius
post
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 31.12.2006

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


No da sie latwiej.... Robisz tak:

  1. <a href="#">Link 1</a>
  2. <a href="#">Link 2</a>
  3. <a href="#">Link 3</a>

i teraz style:
  1. a,
  2. a:visited {
  3. padding-left: (tutaj szerokosc tego obrazka w px+ jakieś3px nadto, żeby ładnie wyglądało);
  4. background: url('dot4a.gif') no-repeat left;
  5. line-height: (wysokosc obrazka);
  6. text-decoration: none;
  7. }
  8. a:hover,
  9. a:active {
  10. background: url('dot4b.gif') no-repeat left;
  11. }


Jak coś to pisz...
Go to the top of the page
+Quote Post
TomASS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Wiedziałem, że da się prościej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Dzięki

Cytat
Daj to słonko jako...

Jak mike do mnie słodko mówisz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

o to chodziło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
No da sie latwiej...

Wybacz, ale mike zrobił to łatwiej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Też kombinowałem tak jak Ty, ale coś mi nie wychodziło...jednak Twój sposób też jest dobry (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dodam jeszcze, że zrobiłem tak jak mike i dodałem padding, bo tekst wchodził na obrazek:
  1. a.menu {
  2. background: url('dot4a.gif') left no-repeat;
  3. padding-left: 20px;
  4. }
  5.  
  6. a.menu:hover {
  7. background: url('dot4b.gif') left no-repeat;
  8. }


Dzięki
Go to the top of the page
+Quote Post
babejsza
post
Post #5





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


Zasugeruję jeszcze jedną możliwość. Linki daj do listy nieuporządkowanej i im w tle przypisz pomarańczowe słonko. Dla samych linków zdefiniuj tlo na zielone słoneczko, a dla hover'a daj background: none.

W css kodu będzie troszkę więcej, ale będą dwie korzyści:

- lista w liście
- tło dla hover'a załaduje się od razu, a nie dopiero po najechaniu na pozycję.
Go to the top of the page
+Quote Post
TomASS
post
Post #6





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


W listy wolę się nie pchać - różnie wyglądają pod różnymi przeglądarkami - ale dzięki za sugestię.
Go to the top of the page
+Quote Post
babejsza
post
Post #7





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


A od kiedy to różnie wygląda pod różnymi przeglądarkami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Kwestia odpowiedniego ostylowania i wszędzie będzie tak samo. No ale z tego co można się domyślić to to będzie narzędzie, a nie strona więc można sobie darować (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
Kreton
post
Post #8





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


Co do zmiany obrazka można to zrobić dużo lepiej, nie będzie też efektu ładowania. Mam na myśli najazd na słoneczko, czekamy aż się załaduje obrazek. Nie ! To trzeba tak:

Kod
a.menu { background: url('obrazek.gif') no-repeat 0 0; }

a.menu:hover { background: url('obrazek.gif') no-repeat 0 25px; }


Tylko wtedy masz 1 obrazek. Na górze jedno słoneczko na dole drugie. Oczywiście te 25px dałem przykładowo.

Ten post edytował Kreton 13.08.2007, 22:15:03
Go to the top of the page
+Quote Post
Rzast
post
Post #9





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 24.11.2005
Skąd: Podczerwone

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


Kreton:
Cytat
Tylko wtedy masz 1 obrazek. Na górze jedno słoneczko na dole drugie. Oczywiście te 25px dałem przykładowo.


Wszystko pięknie, ładnie, ale się jeszcze piękniej sypie jak Ci się link na 2 wiersze robi, bo widać wtedy oba słoneczka. A czasami się tak zdarza, jeśli link jest długi, a szerokość menu stała....

Można zrobić jak exseerius lub mike, a żeby nie było ładowania, to na początku body umieścić niewidzialnego (display:none) diva z zapalonym słoneczkiem. Załaduje się, ale będzie niewidoczny
Go to the top of the page
+Quote Post
Kreton
post
Post #10





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


Wyżej rozmawialiśmy o menu tylko z jedną linią w menu. Problem podany przez Ciebie można trochę inaczej ominąć. Można zastosować więcej przestrzeni między omawianymi słoneczkami. Co do dodawania niewidoczengo diva. Bez sensu moim zdaniem, dodajemy nic nieznaczące śmieci, szczególnie, że można to rozwiązać za pomocą czystego CSS-a.
Go to the top of the page
+Quote Post
pavobe
post
Post #11





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 25.09.2007
Skąd: Poznań

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


W skrócie:

Menu zrobił bym na li'ach i dał słonko pierwsze jako punktor. Gdy li będzie aktywowane (najechalne), to w CSS ustawić zmienę punktora na słonko 2.
Go to the top of the page
+Quote Post
Kreton
post
Post #12





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


Beznadziejne rozwiązanie, ze względu na opóźnienie w ładowaniu. Przecież sposób podany przeze mnie też działa tylko i wyłącznie na CSS-ie, bez efektu ładowania.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 18.09.2025 - 12:26