我不知道如何搜索这个,所以我在这里问.
我想弄清楚这段代码是如何工作的:
if ($("#main .oc .dc .image").removeAttr("style"), 1120 > wW && wW > 920)
$("#main .oc .dc .image").css({
width: Math.round(.3 * wW) + "px",
left: "calc(50% - " + Math.round(.3 * wW / 4) + "px)"
});
我的问题是 –
.removeAttr(“style”)和1120之间的逗号是什么>在这个声明的条件下,你做什么?
如何执行行动, –
$("#main .oc .dc .image").css(
在图括号和css属性缺少引号之前 –
{width:Math.round(.3*wW)+"px",left:"calc(50% - "+Math.round(.3*wW/4)+"px)"}
困惑我.
最佳答案 谢谢你的问题,谢谢……
谢谢你的解释,@ vlaz ……
我学到了新东西!
我做了一个测试片段来完成这个:
var wW = 1000;
$("#test1").on("click",function(){
if ($("#main .oc .dc .image").removeAttr("style"), 1120 > wW && wW > 920)
$("#main .oc .dc .image").css({
width: Math.round(.3 * wW) + "px",
left: "calc(50% - " + Math.round(.3 * wW / 4) + "px)"
});
});
$("#test2").on("click",function(){
if (1120 > wW && wW > 920)
$("#main .oc .dc .image").css({
width: Math.round(.3 * wW) + "px",
left: "calc(50% - " + Math.round(.3 * wW / 4) + "px)"
});
});
$("#test3").on("click",function(){
if (false, 1120 > wW && wW > 920)
$("#main .oc .dc .image").css({
width: Math.round(.3 * wW) + "px",
left: "calc(50% - " + Math.round(.3 * wW / 4) + "px)"
});
});
.image{
border:1px solid black;
width:50%;
position:absolute;
left:20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="main">
main
<div class="oc">
oc
<div class="dc">
dc
<div class="image" style="color:red;">
image
</div>
</div>
</div>
</div>
<br>
<br>
<input type="button" id="test1" value="Test 1 - Execute full condition"><br>
<input type="button" id="test2" value="Test 2 - Execute condition without the left hand part"><br>
<input type="button" id="test3" value="Test 3 - Execute condition with a FALSE in the left hand part"><br>
所以事情是在条件中有两个参数,昏迷分开.
可能会有更多.
在“测试1”中,执行左手条件(红色,在内联样式属性IS中删除),但是在if语句中不考虑布尔结果(这将是真的).
只有最后一个条件.
“测试3”证明了这一点,因为左手状态是错误的.
请注意,我将wW定义为1000,以便将右手条件评估为true(因此,请参阅效果).
我还定义了一个CSS位置:绝对的.image.
我同意@Jason P关于这个“技巧”会大大降低可读性的事实.我没有看到任何有用的案例.不过,知道这件事真是件好事!