Muszę zmienić <img>
źródłowy adres URL na hover
.
Próbowałem tego, ale nie zadziała:
HTML
<img id="my-img" src="http://dummyimage.com/100x100/000/fff"/>
CSS
#my-img:hover {
content: url('http://dummyimage.com/100x100/eb00eb/fff');
}
Każda pomoc będzie mile widziana.
Aktualizacja:
Działa to tylko w przypadku Webkit / Google Chrome.
content
działa tylko z:before
lub:after
tak to nie zadziała. Dlaczego nie użyćdiv
znaku z obrazem tła i po najechaniu kursorem zmienić ten obraz tła?DIV
.content:
jedyny działa z:before
or:after
img
tagu i po prostu usunąć gosrc
z obrazu. Chociaż jest to trochę dziwne, zadziała. @HamedKamrava: Możesz użyć tylko obrazu, czy możesz użyć czegoś innego?:before
lub:after
klasach pseudo do użytkucontent:url(...)
. Aktualizacja: działa tylko w przypadku Webkit / Google Chrome.Odpowiedzi:
Mając tylko html i css, nie można zmienić źródła obrazu. Jeśli zastąpisz tag img znacznikiem div, możesz zmienić obraz ustawiony jako tło na
A jeśli myślisz, że możesz użyć jakiegoś kodu javascript, powinieneś być w stanie zmienić src tagu img, jak poniżej
źródło
<img src="..." style="visibility: hidden" />
Zmodyfikowałem kilka zmian związanych z Patrickiem Kostjensem.
PRÓBNY
http://jsfiddle.net/ssuryar/wcmHu/429/
źródło
Miałem podobny problem, ale moim rozwiązaniem były dwa obrazy, jeden ukryty (wyświetlacz: brak) i jeden widoczny. Po najechaniu kursorem na otaczający zakres, oryginalny obraz zmienia się na wyświetlany: brak, a drugi obraz do wyświetlenia: blok. (Zamiast tego można użyć słowa „inline”, w zależności od okoliczności)
Ten przykład używa dwóch tagów span zamiast obrazów, więc możesz zobaczyć wynik po uruchomieniu go tutaj. Nie miałem niestety żadnych źródeł obrazu online.
źródło
span#initial
zamiastspan[id="initial"]
Co możesz zrobić, to trochę oszukać, ustawiając
width
iheight
na 0, aby ukryć rzeczywisty obraz i zastosować CSS, aby zrobić to, co chcesz:I wypełnienie sprawiające, że
img
tag ma rozmiar, który chcesz mieć (połowa rozmiaru rzeczywistego obrazu).Skrzypce
źródło
Oto alternatywne podejście wykorzystujące czysty CSS. Chodzi o to, aby uwzględnić oba obrazy w znacznikach HTML i odpowiednio je wyświetlić lub ukryć: hover
HTML
CSS
jsfiddle: https://jsfiddle.net/m4v1onyL/
Zwróć uwagę, że użyte obrazy mają takie same wymiary, aby były prawidłowo wyświetlane. Ponadto te rozmiary plików obrazów są dość małe, więc ładowanie wielu obrazów nie stanowi w tym przypadku problemu, ale może tak być, jeśli chcesz przełączać wyświetlanie obrazów o dużych rozmiarach.
źródło
Jeśli chodzi o semantykę, nie podoba mi się żadne podane dotychczas rozwiązanie. Dlatego osobiście korzystam z następującego rozwiązania:
To jest jedyne rozwiązanie CSS z dobrą kompatybilnością przeglądarki. Wykorzystuje opakowanie obrazu, którego tło jest początkowo ukryte przez sam obraz. Po najechaniu kursorem obraz jest ukryty przez krycie, dlatego obraz tła staje się widoczny. W ten sposób nie ma się pustego opakowania, ale prawdziwy obraz w kodzie znaczników.
źródło
Mam jeszcze jedno rozwiązanie. Jeśli ktoś używa AngularJs: http://jsfiddle.net/ec9gn/30/
Javascript:
Brak CSS ^^.
źródło
Miałem podobny problem - chcę zamienić obraz na: najedź, ale nie mogę użyć BACKGRUND-IMAGE z powodu braku adaptacyjnego projektu Bootstrapa.
Jeśli lubisz mnie, chcesz tylko zmienić obraz: najedź (ale nie nalegaj na zmianę SRC dla określonego tagu obrazu), możesz zrobić coś takiego - to tylko rozwiązanie CSS.
HTML:
CSS:
Jeśli chcesz kod zgodny z IE7, możesz ukryć / pokazać: HOVER obraz przez pozycjonowanie nie przez krycie.
źródło
Ponieważ nie możesz zmienić
src
pomocą CSS: Jeśli jQuery jest dla ciebie opcją, sprawdź to skrzypce.Próbny
Zasadniczo używa
.hover()
metody ... wymaga dwóch funkcji, aby działała. Kiedy wchodzisz do zawisu i kiedy go opuszczasz.Używamy
.attr
(skrót od atrybutu), aby zmienićsrc
atrybutu.Warto zauważyć, że aby to działało, potrzebujesz biblioteki jQuery dołączonej jak na skrzypcach.
źródło
Skrzypce
Zgadzam się z odpowiedzią AshisKumar,
istnieje sposób na zmianę adresu URL obrazu po najechaniu myszą za pomocą funkcji jQuery, jak poniżej:
źródło
a
czymdisplay:block
różni się używanie with od div? Tematu postanowił dokonaćsrc
atrybutuimg
przezcss
nie jakiegoś Walkaround.Osobiście wybrałbym jedno z rozwiązań JavaScript / jQuery. Nie tylko zachowuje to semantyczny HTML (tj. Obraz jest wyświetlany jako element img ze zwykłym obrazem src zdefiniowanym w znaczniku), ale jeśli używasz rozwiązania JS / jQuery, będziesz mógł również użyć JS / jQuery do wstępnego załadowania obraz w dymku.
Wstępne załadowanie obrazu po najechaniu oznacza, że prawdopodobnie nie będzie opóźnienia w pobieraniu, gdy użytkownik najedzie na oryginalny obraz, co spowoduje, że Twoja witryna będzie zachowywać się znacznie bardziej profesjonalnie.
Oznacza to, że jesteś zależny od JS, ale niewielka mniejszość, która nie ma włączonego JS, prawdopodobnie nie będzie zbytnio zbulwersowana - a wszyscy inni będą mieli lepsze wrażenia ... a twój kod też będzie dobry!
źródło
Nie możesz zmienić atrybutu
img
tagu zasrc
pomocąCSS
. Możliwe przy użyciu modułuonmouseover()
obsługi zdarzeń Javascript .HTML:
JavaScript:
źródło
Nie możesz zmienić img src za pomocą css. Możesz jednak użyć następującego czystego rozwiązania CSS. HTML:
CSS:
Lub, jeśli nie chcesz używać elementu div z obrazem tła, możesz użyć rozwiązania javascript / jQuery. HTML:
jQuery:
źródło
W tym celu możesz użyć poniższego kodu
1) html
2) css
źródło
Na starszych przeglądarkach
:hover
działało tylko na<a>
elementach. Więc musiałbyś zrobić coś takiego, żeby to zadziałało.źródło
Poniższy kod działa zarówno w przeglądarce Chrome, jak i Firefox
źródło
Oto czyste rozwiązanie CSS. Umieść widoczny obraz w tagu img, umieść drugi obraz jako tło w css, a następnie ukryj obraz po najechaniu kursorem.
źródło
Najlepszym sposobem zmiany
src
obrazu jest:Zobacz demo na żywo: http://www.audenaerde.org/csstricks.html#imagereplacecss
Cieszyć się!
źródło
Wypróbuj ten kod.
źródło
Jest jeszcze jeden prosty sposób korzystania tylko z HTML i CSS!
Po prostu zawiń swój
<img>
tag w div w następujący sposób:Następnie w pliku CSS ukryj obraz i ustaw obraz tła dla zawijającego elementu div:
Zrobione!
źródło