Ich muss die <img>
Quell-URL ändern hover
.
Ich habe es versucht, aber es wird nicht funktionieren:
HTML
<img id="my-img" src="http://dummyimage.com/100x100/000/fff"/>
CSS
#my-img:hover {
content: url('http://dummyimage.com/100x100/eb00eb/fff');
}
Jede Hilfe wäre dankbar.
Aktualisieren:
Dies funktioniert nur für Webkit / Google Chrome.
content
funktioniert nur mit:before
oder:after
so wird das nicht funktionieren. Warum nichtdiv
ein Hintergrundbild verwenden und das Hintergrundbild ändern?DIV
.content:
funktioniert nur mit:before
oder:after
img
Tags festlegen und es einfachsrc
aus Ihrem Bild entfernen . Obwohl das ein bisschen seltsam ist, wird es funktionieren. @HamedKamrava: Sie können nur ein Bild oder etwas anderes verwenden?:before
oder:after
Pseudo-Klassen zu verwendencontent:url(...)
. Update: Dies funktioniert nur für Webkit / Google Chrome.Antworten:
Mit nur HTML und CSS ist es nicht möglich, den src des Bildes zu ändern. Wenn Sie das img-Tag durch das div-Tag ersetzen, können Sie möglicherweise das als Hintergrund festgelegte Bild wie folgt ändern
Und wenn Sie glauben, dass Sie Javascript-Code verwenden können, sollten Sie in der Lage sein, den Quellcode des img-Tags wie folgt zu ändern
quelle
<img src="..." style="visibility: hidden" />
Ich habe einige Änderungen in Bezug auf Patrick Kostjens geändert.
DEMO
http://jsfiddle.net/ssuryar/wcmHu/429/
quelle
Ich hatte ein ähnliches Problem, aber meine Lösung bestand darin, zwei Bilder zu haben, eines versteckt (Anzeige: keine) und eines sichtbar. Beim Bewegen des Mauszeigers über eine umgebende Spanne ändert sich das Originalbild in Anzeige: keine und das andere anzuzeigende Bild: Block. (Abhängig von Ihren Umständen kann stattdessen "Inline" verwendet werden.)
In diesem Beispiel werden zwei Span-Tags anstelle von Bildern verwendet, sodass Sie das Ergebnis sehen können, wenn Sie es hier ausführen. Ich hatte leider keine Online-Bildquellen.
quelle
span#initial
span[id="initial"]
Was Sie tun können, ist ein wenig zu schummeln, indem Sie
width
undheight
auf 0 setzen, um das eigentliche Bild auszublenden und etwas CSS anzuwenden, um das zu tun, was Sie wollen:Und die Polsterung macht das
img
Tag so groß, wie Sie es möchten (halb so groß wie Ihr eigentliches Bild).Geige
quelle
Hier ist ein alternativer Ansatz mit reinem CSS. Die Idee ist, beide Bilder in das HTML-Markup aufzunehmen und diese entsprechend anzuzeigen oder auszublenden: hover
HTML
CSS
jsfiddle: https://jsfiddle.net/m4v1onyL/
Beachten Sie, dass die verwendeten Bilder für eine ordnungsgemäße Anzeige die gleichen Abmessungen haben. Außerdem sind diese Bilddateigrößen recht klein, sodass das Laden mehrerer Bilder in diesem Fall kein Problem darstellt. Dies kann jedoch der Fall sein, wenn Sie die Anzeige großer Bilder umschalten möchten.
quelle
In Bezug auf die Semantik mag ich bisher keine Lösung. Daher verwende ich persönlich die folgende Lösung:
Dies ist eine reine CSS-Lösung mit guter Browserkompatibilität. Es wird ein Bild-Wrapper verwendet, dessen Hintergrund zunächst vom Bild selbst ausgeblendet wird. Beim Hover wird das Bild durch die Deckkraft ausgeblendet, sodass das Hintergrundbild sichtbar wird. Auf diese Weise hat man keinen leeren Wrapper, sondern ein echtes Bild im Markup-Code.
quelle
Ich habe noch eine Lösung. Wenn jemand AngularJs verwendet: http://jsfiddle.net/ec9gn/30/
Das Javascript:
Kein CSS ^^.
quelle
Ich hatte ein ähnliches Problem - ich möchte das Bild auf: Hover ersetzen, kann aber BACKGRUND-IMAGE nicht verwenden, da das adaptive Design von Bootstrap fehlt.
Wenn Sie mich mögen, möchten Sie nur das Bild ändern auf: Hover (aber nicht darauf bestehen, SRC für das bestimmte Bild-Tag zu ändern), können Sie so etwas tun - es ist eine reine CSS-Lösung.
HTML:
CSS:
Wenn Sie IE7-kompatiblen Code wünschen, können Sie das Bild HOVER ausblenden / anzeigen, indem Sie es nicht nach Deckkraft positionieren.
quelle
Da Sie das
src
mit CSS nicht ändern können : Wenn jQuery eine Option für Sie ist, überprüfen Sie diese Geige.Demo
Grundsätzlich wird die
.hover()
Methode verwendet ... es sind zwei Funktionen erforderlich, damit sie funktioniert. Wenn Sie den Schwebeflug betreten und wenn Sie ihn verlassen.Wir verwenden das
.attr
(kurz für Attribut), um dassrc
Attribut zu ändern .Es ist erwähnenswert, dass Sie die jQuery-Bibliothek benötigen, die wie in der Geige enthalten ist, damit dies funktioniert.
quelle
Geige
Stimmen Sie der Antwort von AshisKumar zu,
gibt es eine Möglichkeit, die Bild-URL per Mausklick zu ändern, indem Sie die folgende jQuery-Funktionalität verwenden:
quelle
a
mitdisplay:block
von div? Der Themenstarter wollte dassrc
Attribut "img
Durch" änderncss
und nicht einen Rundgang.Persönlich würde ich mich für eine der JavaScript / jQuery-Lösungen entscheiden. Dadurch bleibt nicht nur Ihre HTML-Semantik erhalten (dh ein Bild wird als img-Element mit dem im Markup definierten üblichen src-Bild angezeigt), sondern wenn Sie eine JS / jQuery-Lösung verwenden, können Sie auch JS / verwenden. jQuery zum Vorladen Ihres Hover-Images.
Wenn Sie das Hover-Image vorab laden, tritt wahrscheinlich keine Download-Verzögerung auf, wenn der Benutzer mit der Maus über das Original-Image fährt, was dazu führt, dass sich Ihre Site viel professioneller verhält.
Es bedeutet zwar, dass Sie von JS abhängig sind, aber die winzige Minderheit, für die JS nicht aktiviert ist, wird wahrscheinlich nicht zu viel Aufhebens machen - und alle anderen werden eine bessere Erfahrung machen ... und Ihr Code wird auch gut sein!
quelle
Sie können
img
dassrc
Attribut des Tags nicht mit ändernCSS
. Möglich mit Javascriptonmouseover()
Event Handler.HTML:
Javascript:
quelle
Sie können das img src nicht mit css ändern. Sie können jedoch die folgende reine CSS-Lösung verwenden. HTML:
CSS:
Wenn Sie kein div mit einem Hintergrundbild verwenden möchten, können Sie auch eine Javascript / jQuery-Lösung verwenden. Html:
jQuery:
quelle
Hierfür können Sie den folgenden Code verwenden
1) HTML
2) css
quelle
In älteren Browsern
:hover
nur an<a>
Elementen gearbeitet. So können Sie etwas tun müsste , wie dies , um es an die Arbeit.quelle
Der folgende Code funktioniert sowohl in Chrome als auch in Firefox
quelle
Hier ist eine reine CSS-Lösung. Fügen Sie das sichtbare Bild in das img-Tag ein, fügen Sie das zweite Bild als Hintergrund in das CSS ein und blenden Sie das Bild beim Hover aus.
quelle
Der beste Weg,
src
um das Bild zu ändern , ist:Siehe Live-Demo: http://www.audenaerde.org/csstricks.html#imagereplacecss
Genießen!
quelle
Versuchen Sie diesen Code.
quelle
Es gibt eine andere einfache Möglichkeit, nur HTML und CSS zu verwenden!
Wickeln Sie Ihr
<img>
Tag einfach wie folgt mit div ein:Verstecken Sie dann in Ihrer CSS-Datei das Bild und legen Sie das Hintergrundbild für das umschließende div-Element fest:
Et voilà!
quelle