Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [css] Hover odnosnika z pozycjonowaniem absolutnym
Forum PHP.pl > Forum > Przedszkole
krzywy36
Tytuł raczej dużo nie mówi, ale chodzi o to, że chcę uzyskać efekt przyciemniania obrazków po najechaniu na nie kursorem.
Założenie było takie, że wstawiam w diva odnośnik i obrazek, odnośnik pozycjonuję absolutnie, szerokość i wysokość ustawiam na odpowiadające wartości z obrazka i przy najechaniu kursorem za pomocą :hover, ustawiam tło odnośnika na półprzezroczysty png. Wszystko działa pięknie w chrome i firefoxie, problem występuje w operze, tam odnośnik jest cały czas jakby pod obrazkiem i w ogóle nie można w niego kliknąć więc efekt hover też się nie aktywuje. Jakieś pomysły jak to naprawić? z-index nie pomaga.

Edit: jeśli nie będzie możliwości naprawić tego w css, to może jakieś rozwiązanie w js?
Bags_Bunny
O ile dobrze zrozumiałem o co Ci chodzi, może po prostu ustaw czarne tło pod obrazkiem i zmieniaj opacity?
krzywy36
opacity działa we wszystkich przeglądarkach?

Edit: tak czy siak, nie rozwiązuje to do końca mojego problemu, bo nie napisałem w pierwszym poście, ale na innym obrazku chcę zrobić to samo, z tym że w dodatku ma się wyświetlać na nim tekst.
r4xz
ciągle opacity rozwiązuje twój problem.
MrCoody
Spróbuj obrazek w CSSie
NP.:
  1. <div id="obrazek"><a href="#">Odnośnik</a></div>


KOD CSS 3 - box-shadow:

#obrazek {; width: 400px; height: 300px; position: absolute; top: 0px; left: 100px; text-align: center;}

#obrazek:hover { width: 400px; height: 300px; position: absolute; top: 0px; left: 100px; text-align: center; -moz-box-shadow: inset 100px 100px 100px #999;-0-box-shadow: inset 100px 100px 100px #999;-webkit-box-shadow: inset 100px 100px 100px #999;box-shadow: inset 100px 100px 100px #999;}

a {text-decoration:none; color: green; font-weight: bold; cursor:default;}

a:hover {color: lime;}


Kombinuj z tym box-shadow żeby był efekt przejścia możesz zastosować też funkcję "transition"
Przykład :
-webkit-transition:All 0.3s ease-in-out;
-moz-transition:All 0.3s ease-in-out;
-o-transition:All 0.3s ease-in-out;
krzywy36
@r4xz w drugim wypadku opacity nie rozwiązuje mojego problemu, wrzucę przykładowy kod, żeby to zobrazować:
  1. <div id="photo">
  2. <a href="#">Przykladowy tekst</a>
  3. <img src="#" />
  4. </div>

  1. #photo
  2. {
  3. position: relative;
  4. height: 400px;
  5. width: 400px;
  6. }
  7. #photo a
  8. {
  9. position: absolute;
  10. left: 0;
  11. top: 0;
  12. bottom: 0;
  13. right: 0;
  14. color: transparent;
  15. }
  16. #photo a:hover
  17. {
  18. color: #fff;
  19. }


o ile w przypadku zwykłego obrazka mogę zastosować hover dla samego img to w tym wypadku, żeby pokazać tekst muszę zrobić hover dla <a>, no a jak już pisałem <a> w oprzerze jest wyświetlane jakby pod obrazkiem.

@MrCoody, css3 narazie sobie odpuszcze z wiadomych powodów.
MrCoody
dodaj może #photo: hover np.:
  1. #photo:hover
  2. { background: black;
  3. position: relative;
  4. height: 400px;
  5. width: 400px;
  6. }



Nak najedziesz na obrazek to tło się zmieni na czarne biggrin.gif

ALBO :
  1. img:hover
  2. { background: black;
  3. position: relative;
  4. height: 400px;
  5. width: 400px;
  6. }


Jak nie działa to nie wiem o co Ci chodzi smile.gif
Bags_Bunny
Daj #photo czarne tło, wrzuć obrazek i tekst w dodatkowy div i rób hover dla tego dodatkowego diva.
MrCoody
mogło by być też w js np.:

w headzie :
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. function startIt() {
  3. var oImg = document.getElementById('image');
  4. oImg.style.bgcolor = 'black';
  5. }
  6.  
  7. function stopIt() {
  8. var oImg = document.getElementById('image');
  9. oImg.style.bgcolor = '';
  10. }
  11. </script>
[JAVASCRIPT] pobierz, plaintext


i kod w htmlu :

  1. <img onmouseover="startIt()" onmouseout="stopIt()" id="image" src="zdjecie.jpg" />


POMOGŁEM questionmark.gif
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.