您不一定需要一个基于 jQuery 的解决方案,它很简单,但拥有纯 CSS / JS 解决方案也是一种选择。如果您只是使用 jQuery 来更改颜色或添加类,那么您很可能做错了。
获得您想要获得的最常见的方法是远程调用服务器,您可以为此使用 XHR,这取决于 XHR 的响应和状态,您可以随时更新您的视图。我提供了一个进度条的例子,为了达到你想要的,你可以遵循类似的方法。
例如,您正在创建一个进度条。使用 HTML 为:
<div class="progress_bar">
<div class="progress"></div>
</div>
CSS 部分包含。
.progress_bar{
display:inline-block;
position:relative;
margin:20px;
width:100%;
height:40px;
max-width:100px; /* For Computers */
}
.progress_bar .progress{
height:100%;
position:absolute;
left:0px;
top:0px;
width:0%;
}
@media(max-width:320px){
max-width:100%;
margin:10px;
}
.progress_bar::before{
display:block; text-align:center;
content:"Loading";
color:black;
font-size:16px;
}
.progress_bar.completed::before{
content:"Finished";
}
.progress_bar.error::before{
content:"Error Occured";
}
现在您可以进行 JS API 调用(假设您正在下载文件)
你可以改变 .progress 元素的宽度。
function ProgressBar(elem){
var bar = elem.getElementsByClassName('progress')[0];
this.setProgress = function(x){
bar.style.width = x + '%';
}
this.completed = function(){
elem.classList.add("completed");
}
this.errored = function(){
elem.classList.add("errored");
}
}
现在您可以创建一个对象并使用新的 XHR2.0 API 来控制您的 JS 部分,但是通过添加类等,您可以获得响应式设计,因为 js 中的某些更改或某些逻辑会导致应用 CSS 类,此类可以使用媒体查询为其定义多个规则。希望这可以帮助。
有关 XHR2.0 的更多信息,您可以在此处阅读http://www.html5rocks.com/en/tutorials/file/xhr2/