我在背景中有一个红色的div,边框是弯曲的,黄色的div也是一个弯曲的边框。黄色条缓慢地填满红色条(例如,表示进度)。看到这个小提琴:
代码
<div id="topDiv" style="height:20px; width:200px; background-color:red; border-radius:10px;">
<div id="childDiv" style="height:20px; width:100px; background-color:yellow; border-top-left-radius:10px; border-bottom-left-radius:10px;">
</div>
</div>
<br/>
<br/>
<input id="change" type="button" value="Change Width" style="height:25px; width:100px;"></input>
$("#change").click(function(){
$("#childDiv").width((parseInt($("#childDiv").width()) + 5) + "px");
});
现在,我想要的是黄色条的右边框在没有完全填满红色条的情况下是平的(不是弯曲的)。但是当它完全填满红色条时它应该变成弯曲的。有人可以提出实施此方法的最佳方法吗?
答案 0 :(得分:7)
只需将overflow: hidden
添加到#topDiv
答案 1 :(得分:0)
由于#childDiv
是#topDiv
的孩子,这应该可以解决问题:
#topDiv { overflow:hidden; }
要回答这个问题,要动态更改border-radius
,请尝试以下操作:
$("#childDiv").css('border-radius', '10px');
但在您的情况下,overflow
属性是最佳实现。
答案 2 :(得分:0)
在$(&#34; #change&#34;)。click()函数内,放置此条件语句。它将比较两个div的宽度,如果子宽度大于或等于顶部div,它将调整子div的边界半径。
$("#change").click(function(){
$("#childDiv").width((parseInt($("#childDiv").width()) + 5) + "px");
var filled = $("#childDiv").width() >= $("#topDiv").width();
$("#childDiv").css('border-radius', filled ? '10px' : 0);
});