首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取更新的CSS属性值

问获取更新的CSS属性值
EN

Stack Overflow用户
提问于 2017-04-24 01:41:42
回答 2查看 36关注 0票数 0

是否有一种方法可以提取用jQuery动态更新的CSS属性的值?例如,div可以从0不透明开始。在每次悬停时,div都会添加更多的不透明度,因此通过jQuery获取不透明度将在第一次悬停时捕获原始不透明度,而在每次附加悬停时都会捕获新的不透明度。

在jsfiddle中,我让它通过创建一个新的数据属性来工作,但是我想用更新的属性代替。在获取不透明度属性的示例中,您可以看到,在2次悬停后,变量不再正确更新。

(https://jsfiddle.net/nvr6qx3k/4/)

​

代码语言:javascript
复制
$(".row").on("mouseover", "div", function() {

	var opacity = parseInt($(this).css("opacity")) || 0;
  opacity = opacity + 1;
 	$(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);
  
});
代码语言:javascript
复制
.box {
  width: 50px;
  height: 50px;
  background-color: #000;
  opacity: .5;
}
代码语言:javascript
复制
<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>

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-24 02:02:35

CSS不透明度值从0到1。

一次100%

所以不透明=2是没有道理的。

在鼠标上你应该加0.1..。你就会看到效果。

还有..。parseInt()返回一个整数。

因此,使用parseFloat更好地提取浮点数。

;)

​

代码语言:javascript
复制
var opacity;

$(".row").on("mouseover", "div", function() {

  opacity = parseFloat($(this).css("opacity")) || 0;
  opacity = opacity + 0.1;
  $(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);
  
});
代码语言:javascript
复制
.box {
  width: 50px;
  height: 50px;
  background-color: #000;
  opacity: .5;
}
代码语言:javascript
复制
<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>

​

票数 0
EN

Stack Overflow用户

发布于 2017-04-24 02:18:53

嗨,我想你应该开始使用0.2的不透明度,因为css的不透明度最大值是1。也许每个鼠标都添加0.2。使用parstInt代替parseFloat,因为parseInt只能返回0的(0.5),这就是为什么不能获得当前不透明度的值。

检查一下这个:

​

代码语言:javascript
复制
$(".row").on("mouseover", "div", function() {

	var opacity = parseFloat($(this).css("opacity")) || 0;
  opacity = opacity + 0.2;
 	$(this).css("opacity", opacity); 
  
  var count = parseFloat($(this).data('click')) || 0;
  count = count + 1;
  $(this).data("click", count);
  console.log("count is: " + count);
  
});
代码语言:javascript
复制
.box {
  width: 50px;
  height: 50px;
  background-color: #000;
  opacity: .2;
}
代码语言:javascript
复制
<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>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43578534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档