【发布时间】:2018-08-31 11:40:20
【问题描述】:
当我将它的宽度增加 10% 时,它会突然应用,我希望它有一些平滑的运动。
var counter=0;
function moveBy10(x){
var width =10;
var bar = document.getElementById('bar');
counter++;
if(counter*x < 101){
bar.style.width = counter*x +'%';
}
}
#barHolder {
background-color: black;
width: 100%;
height: 80px;
}
#bar {
background-color: red;
width:5%;
height: 80px;
}
#by10 {
background-color: grey;
height: 40px;
width: 100px;
border-radius: 5px;
margin-top: 10px;
padding-top: 10px;
text-align: center;
cursor: pointer;
}
<!DOCTYPE html>
<html>
<head>
<title>Progress bar</title>
<link rel="stylesheet" type="text/css" href="bar.css">
<script type="text/javascript" src="bar.js"></script>
</head>
<body>
<!--- progress bar container -->
<div id="barHolder">
<div id="bar"></div>
</div>
<div type="button" id="by10" onclick="moveBy10(10)">Move 10%</div>
</body>
</html>
【问题讨论】:
-
缓慢移动是什么意思?难道你不能用JS中的宽度变量的值来做到这一点吗?
-
哦,我明白你的意思了。您可以使用 setInterval 函数使您的进度条顺利进行,而不会出现这种跳跃效果。
-
@LazarNikolic 因为我将其宽度增加 10%,它会突然应用,我希望它有一些平滑的运动。
-
@Teemu 谢谢你的加入。
标签: javascript html css progress-bar