jQueryで動的に更新されたCSSプロパティの値を取得する方法はありますか?たとえば、divは0の不透明度で開始できます。それぞれのホバーでは、divに不透明度が追加されるため、jQueryで不透明度を取得すると、最初のホバー時の元の不透明度と、追加のホバーごとの新しい不透明度が取得されます。更新されたCSSプロパティ値を取得する
jsfiddleでは、新しいデータプロパティを作成して作業していますが、代わりに更新されたプロパティを取得します。 Opacityプロパティを取得する例では、2つのホバーの後に、変数が適切に更新されないことがわかります。
(https://jsfiddle.net/nvr6qx3k/4/)
$(".row").on("mouseover", "div", function() {
\t var opacity = parseInt($(this).css("opacity")) || 0;
opacity = opacity + 1;
\t $(this).css("opacity", opacity);
console.log("opacity is " + opacity);
var count = parseInt($(this).data('click')) || 0;
count = count + 1;
$(this).data("click", count);
console.log("count is: " + count);
});
.box {
width: 50px;
height: 50px;
background-color: #000;
opacity: .5;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="box">Box 1</div>
<div class="box">Box 2</div>
<div class="box">Box 3</div>
</div>
私は不透明度に設定のように制限して設定されます。あなたはそれに1を追加した場合、それは2になりますので、不透明度が最大で1.0であると思います。しかし2 1.0;私は0.1でインクリメントしてみました。あなたのcssは最初のホバーで0.5に不透明度を設定していたので、0.6と2番目の0.7、次に0.8,0.9,1.0,1.1の不透明度を設定しました。 (私はparseIntをparseFloatに変更して、0.1刻みで動作するようにしました) –
うわー、それでした!どうもありがとうございます! :D – randyturtle