So ändern Sie die Farbe des pseudo-Elemente in CSS über JQuery?
Ich habe eine herzförmige button mit CSS. Hier ist das JSFiddle link von meinem code.
CSS:
#heart {
height: 50px;
width: 50px;
position: relative;
}
#heart .outline:before,
#heart .outline:after {
position: absolute;
content: "";
left: 28px;
top: 1px;
width: 15px;
height: 27px;
background: #d53423;
-moz-border-radius: 50px 50px 0 0;
border-radius: 85px 60px 0 0;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg);
-webkit-transform-origin: 0 100%;
-moz-transform-origin: 0 100%;
-ms-transform-origin: 0 100%;
-o-transform-origin: 0 100%;
transform-origin: 0 100%;
}
#heart .outline:after {
left: 13px;
-webkit-transform: rotate(45deg);
border-radius: 45px 60px 0 0;
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
-webkit-transform-origin: 100% 100%;
-moz-transform-origin: 100% 100%;
-ms-transform-origin: 100% 100%;
-o-transform-origin: 100% 100%;
transform-origin: 100% 100%;
}
$("#heart").on('submit',
function(e) {
console.log('click heart support');
e.preventDefault();
$('#heart .outline:before').css('background', 'grey');
}
);
HTML:
<form id="heart">
<button id="like_btn" class="outline" type="submit"></button>
</form>
Wenn ich auf die Formular-Schaltfläche, möchte ich diese herzförmige Taste, um die Farbe ändern. Jedoch, diese Herz-förmige Taste ist aus CSS pseudo-Elementen und daher kann ich nicht einfach die Farbe ändern.
Hat jemand eine Ahnung, wie kann ich manipulieren, CSS pseudo-Elementen (z.B. :before
und :after
) mithilfe von JQuery?
- Es kann nicht getan werden, mit jQuery - siehe stackoverflow.com/questions/3743513/...
- Fügen Sie eine Klasse statt. Besser, um alle styling in CSS sowieso.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich
:before
:after
Hintergrundfarbe Erben, dann ändern Sie die Hintergrundfarbe Ihrer Eltern. http://jsfiddle.net/npMyy/3/Diese scheint zu funktionieren bei mir (Firefox 20)... nicht getestet irgendetwas anderes..
Hier
:active
ist eine pseudo-Klasse, und:before
und:after
werden pseudo-Elemente. So ist dies vollkommen akzeptabel, nach der standard.Anderen sol 'N die änderung Ihrer form s-Klasse auf "Absenden" und soll das Herz des Kindes
:before
und:after
mit der modifizierten Auswahlfunktion. Obwohl ich WIRKLICH wie N A T H ' s Antwort mit:active
. sxy. Machte nur minimale änderungen an Ihrer vorhandenen code.DEMO
jquery
css
html