所以我有一个很棒的进度吧感谢你们中的一些人在stackoverflow上。我的问题是如何获取文本以告诉进度条的百分比并随进度条移动(如果条形图的绿色部分为50%我希望文本处于25%等等...即始终在中间的进展)
谢谢!
<!DOCTYPE html>
<html>
<head>
<title>Information Security Assessment</title>
<link rel="stylesheet" type="text/css" href="AuditScriptAssesmentToolTest.css">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="~/Scripts/jquery-1.12.4.min.js"></script>
<!--************************************************************************ -->
<!-- **********************************************************************************************************************************************-->
<div id="head">
<br>
<div id="myProgress">
<progress id='progressBar' max='100' value='0' style="background-color: red; font-family: Impact, Charcoal, sans-serif;" " ><strong>0%</strong></progress>
</div>
<!-- <div id="myProgress ">
<progress max="100 "><div id="myBar " style="font-family: Impact, Charcoal, sans-serif; ""><strong>0%</strong></div>
</div> -->
<br>
</div>
</head>
<body>
<br>
<main class="mainarea">
<br>
<br>
<!-- **********************************************1111111111111111111111111********************************************************-->
<div class="control1">
<div id="criticalSecurityControlForms">
<form action="/action_page.php">
<select id="FirstQOne" name="firstQOne" onchange="this.className=this.options[this.selectedIndex].className" class="whiteselected">
<option class="whiteselected" disabled selected="selected" value="0">Select an Implementation</option>
<option class="Not" value="0">Not Implemented</option>
<option class="ImplementedOnSome" value="10">Implemented on Some Systems</option>
<option class="All" value="15">Implemented on All Systems</option>
<option class="AllAndAuto" value="20">Implemented and Automated on All Systems</option>
</select>
</form>
</div>
<br>
<div id="criticalSecurityControlForms">
<form action="/action_page.php">
<select id="FirstQTwo" name="firstQOne" onchange="this.className=this.options[this.selectedIndex].className" class="whiteselected">
<option class="whiteselected" disabled selected="selected" value="0">Select an Implementation</option>
<option class="Not" value="0">Not Implemented</option>
<option class="ImplementedOnSome" value="10">Implemented on Some Systems</option>
<option class="All" value="15">Implemented on All Systems</option>
<option class="AllAndAuto" value="20">Implemented and Automated on All Systems</option>
</select>
</form>
</div>
<br>
</div>
<script>
function update_progressbar() {
var opt1 = parseInt($('option:selected', $('#FirstQOne')).val());
var opt2 = parseInt($('option:selected', $('#FirstQTwo')).val());
var opt3 = parseInt($('option:selected', $('#FirstQThree')).val());
var opt4 = parseInt($('option:selected', $('#FirstQFour')).val());
var opt5 = parseInt($('option:selected', $('#FirstQFive')).val());
var opt6 = parseInt($('option:selected', $('#FirstQSix')).val());
var opt7 = parseInt($('option:selected', $('#FirstQSeven')).val());
var opt8 = parseInt($('option:selected', $('#FirstQEight')).val());
var total = isNaN(opt1) ? 0 : opt1;
if (!isNaN(opt2)) {
total += opt2;
}
if (!isNaN(opt3)) {
total += opt3;
}
if (!isNaN(opt4)) {
total += opt4;
}
if (!isNaN(opt5)) {
total += opt5;
}
if (!isNaN(opt6)) {
total += opt6;
}
if (!isNaN(opt7)) {
total += opt7;
}
if (!isNaN(opt8)) {
total += opt8;
}
$("#progressBar").prop('value', total)
}
$('#FirstQOne').on('change', update_progressbar);
$('#FirstQTwo').on('change', update_progressbar);
$('#FirstQThree').on('change', update_progressbar);
$('#FirstQFour').on('change', update_progressbar);
$('#FirstQFive').on('change', update_progressbar);
$('#FirstQSix').on('change', update_progressbar);
$('#FirstQSeven').on('change', update_progressbar);
$('#FirstQEight').on('change', update_progressbar);
</script>
</main>
</body>
</html>
&#13;
答案 0 :(得分:0)
使用CSS ::after
选择器和attr()
功能。 ::after
选择器将文本附加到元素的末尾,而attr()
返回给定属性的值。
function update_progressbar() {
var opt1 = parseInt($('option:selected', $('#FirstQOne')).val());
var opt2 = parseInt($('option:selected', $('#FirstQTwo')).val());
var opt3 = parseInt($('option:selected', $('#FirstQThree')).val());
var opt4 = parseInt($('option:selected', $('#FirstQFour')).val());
var opt5 = parseInt($('option:selected', $('#FirstQFive')).val());
var opt6 = parseInt($('option:selected', $('#FirstQSix')).val());
var opt7 = parseInt($('option:selected', $('#FirstQSeven')).val());
var opt8 = parseInt($('option:selected', $('#FirstQEight')).val());
var total = isNaN(opt1) ? 0 : opt1;
if (!isNaN(opt2)) {
total += opt2;
}
if (!isNaN(opt3)) {
total += opt3;
}
if (!isNaN(opt4)) {
total += opt4;
}
if (!isNaN(opt5)) {
total += opt5;
}
if (!isNaN(opt6)) {
total += opt6;
}
if (!isNaN(opt7)) {
total += opt7;
}
if (!isNaN(opt8)) {
total += opt8;
}
$("#progressBar").prop('value', total)
}
$('#FirstQOne').on('change', update_progressbar);
$('#FirstQTwo').on('change', update_progressbar);
$('#FirstQThree').on('change', update_progressbar);
$('#FirstQFour').on('change', update_progressbar);
$('#FirstQFive').on('change', update_progressbar);
$('#FirstQSix').on('change', update_progressbar);
$('#FirstQSeven').on('change', update_progressbar);
$('#FirstQEight').on('change', update_progressbar);
progress {
text-align: center;
}
progress:after {
content: attr(value)'%';
position: relative;
top: -1.15em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="head">
<br>
<div id="myProgress">
<progress id='progressBar' max='100' value='0' style="background-color: red; font-family: Impact, Charcoal, sans-serif;"></progress>
</div>
<!-- <div id="myProgress">
<progress max="100"><div id="myBar" style="font-family: Impact, Charcoal, sans-serif;""><strong>0%</strong></div>
</div> -->
<br>
</div>
<body>
<br>
<main class="mainarea">
<br>
<br>
<!-- **********************************************1111111111111111111111111********************************************************-->
<div class="control1">
<div id="criticalSecurityControlForms">
<form action="/action_page.php">
<select id="FirstQOne" name="firstQOne" onchange="this.className=this.options[this.selectedIndex].className" class="whiteselected">
<option class="whiteselected" disabled selected="selected" value="0">Select an Implementation</option>
<option class="Not" value="0">Not Implemented</option>
<option class="ImplementedOnSome" value="10">Implemented on Some Systems</option>
<option class="All" value="15">Implemented on All Systems</option>
<option class="AllAndAuto" value="20">Implemented and Automated on All Systems</option>
</select>
</form>
</div>
<br>
<div id="criticalSecurityControlForms">
<form action="/action_page.php">
<select id="FirstQTwo" name="firstQOne" onchange="this.className=this.options[this.selectedIndex].className" class="whiteselected">
<option class="whiteselected" disabled selected="selected" value="0">Select an Implementation</option>
<option class="Not" value="0">Not Implemented</option>
<option class="ImplementedOnSome" value="10">Implemented on Some Systems</option>
<option class="All" value="15">Implemented on All Systems</option>
<option class="AllAndAuto" value="20">Implemented and Automated on All Systems</option>
</select>
</form>
</div>
<br>
</div>
答案 1 :(得分:0)
我不会使用那么多代码。看看这个https://jsfiddle.net/nojja492/1/(改进的例子)
var percent = '50%';
$('#mybar .percentage').css('width', percent).text(percent);
&#13;
.progressbar {
border:1px solid black;
width:100px;
height:20px;
padding:1px;
}
.percentage {
text-align: center;
background:red;
height: 100%;
font-size:11px;
line-height: 20px;
}
&#13;
<div id="mybar" class="progressbar">
<div class="percentage"></div>
</div>
&#13;