Jquery ändern Sie die Deckkraft der div auf Klick
Gelesen habe ich verschiedene Fragen zu diesem Thema, aber ich habe nicht eine Lösung gefunden für meinen speziellen Fall.
Ich brauche zum ändern der Deckkraft des thumbUp und thumbDown divs, wenn Sie angeklickt werden. Warum funktioniert mein code nicht funktioniert?
Danke.
HTML
<body>
<div id="container">
<div id="foto">
<img src="images/feu.jpg">
</div>
<div id="descrizione">
<p class="title">Feu d'artifice</p>
<p>Giacomo Balla<br>
1916-1917<br>
</p>
<div id="likeButtons">
<p>Ti piace quest'opera?</p>
<img id="thumbUp" src="images/thumbup.png">
<img id="thumbDown" src="images/thumbdown.png">
</div>
</div>
<div id="pulsanteOpera" class="pulsante" style="padding: 30px 20px 0 0;float:right;">
<a href="#"></a>
</div>
</div>
</body>
CSS
#likeButtons{
position:relative;
right:-50%;
width:500px;
overflow:hidden;
font-weight:300;
margin-bottom:50px;
}
#likeButtons p{
float:left;
}
#likeButtons img{
width:10%;
margin-bottom:30px;
padding-left:10px;
float:left;
cursor:pointer;
}
#thumbUp,#thumbDown{
opacity:0.6;
}
JQuery
<script>
$(document).ready(function(e) {
$('#pulsanteOpera').click(function(){
$(this).toggleClass('pulsante').toggleClass('pulsanteRimuovi');
});
$('#thumbDown').click(function(){
if($(this).css('opacity')==0.6)
$(this).css('opacity','1.0');
else
$(this).css('opacity','0.6');
});
});
</script>
- anstelle der überprüfung für Wert aus der CSS-Eigenschaft, sollten Sie nur hinzufügen/entfernen einer Klasse
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde vorschlagen, (wenn dies ist sehr ähnlich zu Suganthan Antwort) mit
toFixed()
sowieparseFloat()
, die erste analysiert den string-Wert gehalten, wie der aktuelle Wert deropacity
, und kürzt den Wert aus der unvorhersehbar (cross-browser) long-Wert von fast0.6
auf eine Dezimalstelle:JS Fiddle demo.
In Präferenz zu der obigen Lösung, obwohl, würde ich vorschlagen, anstatt mit konkreten Klassen zu wechseln, Deckkraft, anstatt zu analysieren, die die CSS-Eigenschaft-Werte selbst, mit der folgenden:
Gepaart mit der (zusätzlichen) CSS:
(Auch, entfernen Sie die
opacity: 0.6;
von der#thumbUp
/#thumbDown
Schaltflächen um dies zu ermöglichen, zu arbeiten, und stellen Sie die entsprechende Stil-Elemente, mit zu beginnen, ich habe Hinzugefügt der Klassefaded
beide).JS Fiddle demo.
Zur änderung der Letztgenannte Ansatz, um sicherzustellen, dass 'die Auswahl' ein element hebt die andere:
JS Fiddle demo
Den oben genannten, natürlich, wird davon ausgegangen, dass Sie sich gesetzt haben, die anfangsklassen angemessen, so dass man die
opaque
Klasse und der andere hat diefaded
Klasse; jedoch, zu vereinfachen, und verwenden Sie nur eine weitere Klasse:CSS:
JS Fiddle demo.
Auf die jüngste Stellungnahme aus dem OP:
Ich würde vorschlagen, entfernen der
opaque
Klasse aus derimg
Elemente (im Gegensatz zu meinem vorherigen Vorschlag), und verwenden Sie dann die folgenden:JS Fiddle demo.
Natürlich glaube ich nicht die Ursache kennen, lassen Sie mich zu finden, aber das ist eine Arbeit
Sind Sie wahrscheinlich Probleme beim Lesen der
opacity
Eigenschaft richtig und das könnte sich ändern, basierend auf browser -. Versuchen.Versuchen Sie auch, machen
.clicked
eine Priorität, indem Sie es an der Unterseite des CSS-und unten#thumbDown
.id
eine Priorität überclass