《HTML5 开发实例大全》——1.13 使用< progress >标记元素实现进度条效果

简介:

本节书摘来自异步社区《HTML5 开发实例大全》一书中的第1章,第1.13节,作者: 张明星 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.13 使用< progress >标记元素实现进度条效果


3fb72fc9c69752d47b38cf3ec815bd64715f4aa3

实例说明

在全新HTML 5中,可以使用< progress >标记元素实现进度条效果。当页面在与用户进行数据交互时,为了增强用户的UI体验,通过进度条效果显示在页面中的各种进度状态。< progress >元素是HTML 5中新增的状态交互元素,用来表示页面中的某个任务完成的进度。例如,我们在下载一个文件时,文件下载到本地的进度值,可以通过该元素动态展示在页面中。展示进度的方式既可以使用整数,也可以使用百分比(如10%~100%)。

< progress >元素的属性信息如表1-3所示。


39d1e9dbbc790e74df682cd1dd88aa072fb8f0e0

在< progress >元素中,设置的“value”值必须小于或等于“max”属性值,并且两者都必须大于0。

本实例的功能是,分别在页面中创建一个< progress >元素和一个“下载按钮”。当单击“下载按钮”时,通过元素< progress >动态展示下载进度状态和百分比信息。当下载结束时显示“恭喜你,下载已经完成!”的提示信息。

具体实现

使用Dreamweaver创建一个名为“013.html”的文件,具体代码如下所示:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>使用progress元素</title>
<style type="text/css">
body { 
  font-size:12px
}
p {
  padding:0px;
  margin:0px
}
.inputbtn {
  border:solid 1px #ccc;
  background-color:#eee;
  line-height:18px;
  font-size:12px
}
</style>
</head>
<body>
 <p id="pTip">开始下载</p>
 <progress value="0" max="100" id="proDownFile"></progress>
 <input type="button" value="下载按钮" 
    class="inputbtn" onClick="Btn_Click();">
<script type="text/javascript">
 var intValue = 0;
 var intTimer;
 var objPro = document.getElementById('proDownFile');
 var objTip = document.getElementById('pTip');
 //定时事件
 function Interval_handler() {
  intValue++;
  objPro.value = intValue;
  if (intValue >= objPro.max) {
    clearInterval(intTimer);
    objTip.innerHTML = "恭喜你,下载已经完成!";
  } else {
    objTip.innerHTML = "请耐心等待,正在下载中" + intValue + "%";
  }
 }
 //下载按钮单击事件
 function Btn_Click(){
  intTimer = setInterval(Interval_handler, 100);
 }  
</script>
</body>
</html>

在上述代码中,为了使< progress >元素能够动态展示下载进度,需要通过JavaScript脚本语言编写一个定时事件。在这个事件中累加变量值,并将该值设置为< progress >元素的“value”属性值。当这个属性的值大干或等于< progress >元素的“max”属性值时停止累加,并显示“恭喜你,下载已经完成!”的提示信息;否则将动态显示正在累加的百分比数,具体设置是通过JavaScript脚本代码实现的。

执行后的效果如图1-23所示,当单击“下载按钮”后弹出一个进度条效果,如图1-24所示。


<a href=https://yqfile.alicdn.com/daceeac624ae89491c15e18d584fae90186df2e0.png" >

进度条完成后的效果如图1-25所示。


<a href=https://yqfile.alicdn.com/6f7bbd686ac5e74f5daa4d39794f3dec1a882cde.png" >
相关文章
|
6月前
|
JavaScript 前端开发 开发者
Vue 动态添加 HTML 元素组件封装使用方法及长尾关键词优化指南
本文详细介绍了Vue中动态添加HTML元素的使用方法与组件封装技巧。内容涵盖条件渲染(v-if/v-show)、列表渲染(v-for)、动态组件(:is)、手动操作DOM及动态创建组件实例等核心方法。同时,通过动态表单、弹窗组件和动态加载组件的封装示例,展示如何提升代码复用性和可维护性。最后,总结性能优化策略与注意事项,如批量更新DOM、懒加载大型组件及避免直接操作DOM等,帮助开发者在实际项目中灵活应用Vue动态元素管理功能。
145 15
|
2月前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
149 19
|
5月前
|
移动开发 前端开发 JavaScript
HTML表单验证:确认input元素输入为具有特定整数和小数位数的数值。
将上述JavaScript代码与HTML一同使用,便可以确保用户输入的数值符合特定的格式要求。特别要注意,在实际的生产环境中,仅仅依靠前端验证是不够的。为了安全起见,后端也应该实施相应的验证措施,以防止不匹配格式的数据通过其他手段提交到服务器。
312 74
|
6月前
|
JavaScript 前端开发 开发者
Vue 动态添加 HTML 元素组件封装使用方法及长尾关键词优化指南
本文详细介绍了Vue中动态添加HTML元素的多种方法与组件封装技巧,涵盖条件渲染(v-if/v-show)、列表渲染(v-for)、动态组件(:is)、手动DOM操作及动态创建组件实例等内容。同时提供了性能优化建议,如批量更新DOM、使用v-show代替v-if以及懒加载大型组件等。通过合理封装组件,可提高代码复用性和维护性。文中还附有具体示例代码,帮助开发者更好地理解和应用相关技术。适用于前端开发人员学习和实践Vue动态元素处理与组件设计。
160 19
|
6月前
|
缓存 JavaScript 前端开发
Vue 项目中动态添加 HTML 元素的方法与实践
本文探讨了 Vue 中动态添加 HTML 元素的多种技术方案,包括条件渲染(v-if/v-show)、动态组件(component :is)、手动挂载($mount)及 Vuex 状态管理等方法。通过实例分析,如动态表单生成器与全局模态框服务,展示了这些方案在实际开发中的应用。同时提供了性能优化建议和注意事项,帮助开发者根据需求选择最佳方式,在保持 Vue 响应式特性的同时实现灵活交互。附带代码示例,便于理解和实践。
152 2
|
12月前
|
存储 移动开发 数据处理
HTML5 元素2
HTML5引入了多个新元素以增强表单功能和用户体验。`&lt;keygen&gt;`元素用于生成密钥对,提交表单时生成私钥和公钥,私钥保存在客户端,公钥发送至服务器,用于后续的身份验证。`&lt;output&gt;`元素则用于展示计算结果或其他脚本输出,如表单数据处理的结果。此外,`&lt;datalist&gt;`元素可与`&lt;input&gt;`元素结合使用,提供预定义的选项列表,增强输入的便捷性和准确性。这些元素共同提升了网页的交互性和安全性。
|
12月前
|
移动开发 UED HTML5
HTML5 表单元素1
HTML5引入了新的表单元素,如`&lt;datalist&gt;`、`&lt;keygen&gt;`和`&lt;output&gt;`,以增强表单的功能性和用户体验。
|
11月前
|
移动开发 前端开发 JavaScript
HTML5 <nav> 元素2
HTML5中的`&lt;nav&gt;`标签用于定义页面的导航链接部分,但并非所有链接都需置于其中。`&lt;aside&gt;`标签定义页面主内容外的相关信息,如侧边栏。`&lt;header&gt;`标签描述文档或节的头部区域,可用于定义内容的介绍展示区。示例包括导航、家庭旅行记录和IE9发布信息等。
|
11月前
|
Web App开发 移动开发 iOS开发
HTML5 语义元素1
HTML5引入了语义元素,如`&lt;nav&gt;`、`&lt;header&gt;`、`&lt;footer&gt;`等,这些元素能清晰地向浏览器和开发者传达其内容的意义,如导航链接、头部和尾部。与非语义元素(如`&lt;div&gt;`)不同,语义元素使网页结构更加明确,有助于提升可读性和可访问性。例如,`&lt;section&gt;`标签用于定义文档中的节,而`&lt;article&gt;`标签则用于定义独立的内容,如论坛帖子、博客文章等。这些新元素在IE9及更高版本、Firefox、Chrome、Safari和Opera中得到支持。

热门文章

最新文章