Jquery modifier l'opacité de la div sur cliquez sur
J'ai lu diverses questions au sujet de cette question, mais je n'ai pas trouvé une solution pour mon cas particulier.
J'ai besoin de changer l'opacité de la thumbUp et thumbDown divs quand on clique dessus. Pourquoi mon code ne fonctionne pas?
Merci.
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>
- au lieu de vérifier la valeur d'une propriété CSS, vous devez juste ajouter/supprimer une classe
Vous devez vous connecter pour publier un commentaire.
Je te suggère (mais c'est très similaire à Suganthan de réponse) à l'aide de
toFixed()
ainsi queparseFloat()
, qui, la première analyse de la chaîne de valeur comme la valeur actuelle deopacity
, et abbréviations que la valeur de l'imprévisible (cross-browser) valeur long de presque0.6
à une décimale:JS Fiddle démo.
De préférence à la solution ci-dessus, si, je vous suggère d'utiliser des classes spécifiques pour basculer l'opacité, plutôt que d'avoir à analyser le de la propriété CSS-valeurs, en utilisant les éléments suivants:
Couplé avec le (supplémentaires) CSS:
(Retirez aussi la
opacity: 0.6;
de la#thumbUp
/#thumbDown
les boutons permettant de faire ce travail, et de définir le style approprié sur les éléments pour commencer, j'ai ajouté la classe defaded
à la fois).JS Fiddle démo.
De modifier la dernière approche pour s'assurer que "la sélection" un élément désélectionne les autres:
JS Fiddle démo
Ci-dessus, bien sûr, suppose que vous avez mis la première classes de manière appropriée de sorte que l'on a le
opaque
la classe et les autres a lafaded
classe; cependant, afin de simplifier et d'utiliser seulement un classe supplémentaire:CSS:
JS Fiddle démo.
À l'adresse le commentaire le plus récent à partir de l'OP:
J'aimerais proposer la suppression de la
opaque
classe à partir de laimg
éléments (contrairement à ma suggestion précédente), puis en utilisant les suivantes:JS Fiddle démo.
Évidemment, je ne sais pas la raison, permettez-moi de trouver cela, mais cela fonctionne
Vous sont probablement de la difficulté à la lecture de la
opacity
propriété correctement, ce qui pourrait changer en fonction du navigateur. Essayez de.Aussi, essayez de faire
.clicked
une priorité en la mettant au fond de votre CSS et ci-dessous#thumbDown
.id
être une priorité surclass