Javascript 仅来自类的样式属性
是否可以只从类中获取特定css样式的属性计算机,而不考虑可能的运行时操作 例如:Javascript 仅来自类的样式属性,javascript,jquery,css,class,styles,Javascript,Jquery,Css,Class,Styles,是否可以只从类中获取特定css样式的属性计算机,而不考虑可能的运行时操作 例如: .container{ } .container .item { } .container.inactive .item { opacity:0.5; } 在javascript中的某个地方,项目的不透明度通过,比如说,$('.item').css('opacity',1)更改为1,但是我需要知道某个项目在没有运行时修改的情况下,仅基于其类的不透明度是什么。css的结构只是一个例子,在检查不透明性时不
.container{
}
.container .item {
}
.container.inactive .item {
opacity:0.5;
}
在javascript中的某个地方,项目的不透明度通过,比如说,$('.item').css('opacity',1)更改为1,但是我需要知道某个项目在没有运行时修改的情况下,仅基于其类的不透明度是什么。css的结构只是一个例子,在检查不透明性时不应该考虑它
有可能吗?使用jQuery可以知道CSS属性的值(比如不透明度),如下所示:
var color = $(".item").css( "opacity" );
或
好的,我想我明白你想要什么 看看我做的这把小提琴。
div
已具有不透明度:0.6
然后当我们点击div
时,它将使div不透明度为0.2代码>(通过jQuery)。要删除它,我们只需从div
中删除样式
HTML:
<div>Click Me</div>
div {
width: 100%;
height: 50px;
background: red;
opacity: 0.6;
}
var count = 0;
$("div").click(function () {
if (count == 1) {
$(this).removeAttr("style");
count = 0;
} else {
$(this).css("opacity", "0.2");
count = 1;
}
});
jQuery:
<div>Click Me</div>
div {
width: 100%;
height: 50px;
background: red;
opacity: 0.6;
}
var count = 0;
$("div").click(function () {
if (count == 1) {
$(this).removeAttr("style");
count = 0;
} else {
$(this).css("opacity", "0.2");
count = 1;
}
});
这是一个简单的演示,向您展示它是如何工作的。使用.css
将css
内联,它不会更改样式表
了解有关.css
的更多信息,这样您就不想从javascript覆盖样式。这是对的吗?运行时操作的含义是什么?为什么需要找出这一点?我这样问是因为如果你想让它恢复正常,你只需要去掉通过jQuery设置的不透明度。如果它只是几个元素,你总是可以存储原始状态,但我知道这可能会很快变得很难处理。@Ruddy是的,我需要删除在运行时通过.css('opacity',xxx)所做的任何更改,但我不知道怎么做。我猜,.css('opacity','')可以完全清除不透明度,但如果它在类中是0.5呢?>css的结构只是一个例子,不应该考虑检查不透明度。可能有数百个这样的元素,没有清晰的ID和其他东西。可能我可以为document.ready上的每个元素使用一些item.data('formerOpacity',item.css('opacity')),然后执行item.css('opacity',item.data('formerOpacity'))需要时,但我认为这有点过头了。我希望找到更有效的解决方案。特别是,原始的不透明度可以在更早的时候更改。准备初始化如果我正确理解您的需要,您希望计算css属性的值。类似这样的内容:Lorem ipsum Fiddy boing bum dfg dsfgasdf fgLorem ipsum fiddy boing bum dfg dsfgasdf fg asdfas.Lorem ipsum fiddy boing bum dfg dsfgasdf fg asdfas.我只需要重置不透明度,buy.css('opacity',“”)就可以了。至少在chrome和firefox中,谢谢。