【发布时间】:2015-04-01 09:52:23
【问题描述】:
不久前我问过this question,但从那以后我了解到这不是解决这个问题的好方法,所以我重写了我的整个设计:
我目前有一个圆柱体,我将用它来生成“一个罐子里有多少液体”的 3D 可视化。它将从数据库中获取其百分比值。
我目前有以下标记:
$(document).ready(function () {
var t = (parseInt($('#number').val()));
$('.containts').css("height", t + "%");
$('.tank').addClass("makeSmall");
});
$('#this').on("click",function(){
var y = (parseInt($('#number').val()));
$('.containts').css("height", y + "%");
$('.containts').text(y+"%");
});
.tank {
height:40vw;
width:40vw;
position:relative;
z-index:2;
transition:all 1s;
}
.makeSmall {
height:40vw;
width:40vw;
}
.tank:before {
height:100%;
width:100%;
border-radius:100%/30px;
background:rgba(0, 0, 0, 0.2);
content:"";
position:absolute;
}
.tank:after {
content:"";
position:absolute;
border-radius:100%/30px;
height:30px;
top:0;
left:0;
width:100%;
background:rgba(0, 0, 0, 0.4);
}
.containts {
position:absolute;
background:rgba(255, 0, 0, 0.8);
bottom:0;
height:1%;
width:100%;
text-align:center;
border-radius:100%/30px;
transition:all 1.5s;
color:white;
}
.containts:after {
content:"";
position:absolute;
background:rgba(0, 0, 0, 0.2);
top:0;
left:0;
height:30px;
width:100%;
border-radius:100%/30px;
border-bottom:1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="tank">
<div class="containts">50%</div>
</div>
<br/>
<br/>
<br/>
<br/>
Please enter a valuse between 0 and 100:
<input type="number" value="50" id="number" />
<button id="this">GO</button>
但是,当我使用大约小于 10(即 10%)的值时,水箱会失去完整性并且无法正确显示该值(即液体出现在其容器“外部”)。
这在具有较小值的较小屏幕上特别容易看到。
有人会建议如何更改我当前的标记以阻止“底部从容器底部掉落”吗?
如有任何进一步的说明,我很乐意进一步解释。
【问题讨论】:
标签: jquery html css css-shapes