如何制作进度条
如何在 html/css/javascript 中制作进度条。我真的不想使用 Flash。可以在这里找到类似的内容: http://dustincurtis.com/about.html
全部我真正想要的是一个“进度条”,它可以更改为我在 PHP 中给出的值。你的思考过程是什么?有这方面好的教程吗?
How would one go about making a progress bar in html/css/javascript. I don't really want to use Flash. Something along the lines of what can be found here: http://dustincurtis.com/about.html
All I really want is a 'progress bar' that changes to the values I give in PHP. What would be your though process? Are there any good tutorials on this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(19)
您可以通过 css 控制 div 的宽度来做到这一点。大致是这样的:
如果您愿意,可以从 php 发送该宽度值。
You can do it by controlling the width of a div via css. Something roughly along these lines:
That width value can be sent in from php if you so desire.
如果您使用 HTML5,最好使用新引入的
标签。
或者创建您自己的进度条。
用 sencha 编写的示例
If you are using HTML5 its better to make use of
<progress>
tag which was newly introduced.Or create a progress bar of your own.
Example written in sencha
http://jqueryui.com/demos/progressbar/
看看,它可能就是你需要的。
http://jqueryui.com/demos/progressbar/
Check that out, it might be what you need.
您可以使用
progressbar.js;
动画进度条控件和小图表(迷你图)演示并下载 链接
HTML 使用;
JavaScript 的使用;
You can use
progressbar.js;
Animated progress bar control and tiny chart (sparkline)Demo and download link
HTML usage;
Javascript usage;
基本上是这样的:您有三个文件:长时间运行的 PHP 脚本,由 Javascript 控制的进度条(@SapphireSun 提供了一个选项)和一个进度脚本。最困难的部分是进度脚本;您的长脚本必须能够报告其进度,而无需直接与进度脚本通信。这可以采用会话 ID 映射到进度表、数据库或检查未完成内容的形式。
该过程很简单:
Basically its this: You have three files: Your long running PHP script, a progress bar controlled by Javascript (@SapphireSun gives an option), and a progress script. The hard part is the Progress Script; your long script must be able to report its progress without direct communication to your progress script. This can be in the form of session id's mapped to progress meters, a database, or check of whats not finished.
The process is simple:
我尝试了一个简单的进度条。它不可点击,仅显示实际百分比。这里有一个很好的解释和代码: http://ruwix.com/simple-javascript-html -css-slider-progress-bar/
I tried a simple progress bar. It is not clickable just displays the actual percentage. There's a good explication and code here: http://ruwix.com/simple-javascript-html-css-slider-progress-bar/
这是我的方法,我试图保持简洁:
HTML:
CSS:
Fiddle: 此处
Here is my approach, i've tried to keep it slim:
HTML:
CSS:
Fiddle: here
使用纯Javascript的无限进度条
示例 http://fiddle.jshell.net/1kmum4du/
Infinitive progress bar using pure Javascript
Example http://fiddle.jshell.net/1kmum4du/
我使用了这个进度条。有关这方面的更多信息,您可以通过此链接,即自定义、编码等。
希望这对某人有帮助。
I used this progress bar. For more information on this you can go through this link i.e customization, coding etc.
Hope this may be helpful to somenone.
我知道以下内容目前不起作用,因为浏览器尚不支持它,但也许有一天这会有所帮助:
在发表本文时
attr()
在其他属性比content
只是一个候选推荐1。一旦实现,人们就可以创建一个仅包含一个元素的进度条(如 HTML 5,但具有更好的样式选项和内部文本)
和纯 CSS
这是当前无法运行演示。
1 无法想象为什么这没有在任何浏览器中实现。首先,我认为如果您已经拥有
content
的功能,那么扩展它应该不会太难(但说实话,我当然不知道)。第二:上面只是一个很好的例子,展示了这一功能有多么强大。希望他们很快开始支持它,否则它甚至不会成为最终规范的一部分。I know the following doesn't work currently because browsers do not support it yet, but maybe some day this will help:
At the time of this post
attr()
on other properties thancontent
is just a Candidate Recommendation1. As soon as it is implemented, one could create a progress bar with just one element (like the HTML 5<progress/>
, but with better styling options and text inside)and pure CSS
Here is the currently not working demo.
1 Cannot imagine why this isn't implemented in any browser. First I'd think that if you have the functionality for
content
already, it should not be too hard to extend that (but of course I don't really know to be honest). Second: The above is just one good example showing how powerful this functionality could be. Hopefully they start to support it soon, or it won't even be part of the final specification.您可以为任何可以设置渐变的 html 元素创建进度条。 (非常酷!)在下面的示例中,HTML 元素的背景通过 JavaScript 使用线性渐变进行更新:
PS 我已将两个位置
percentage
设置为相同,以创建一条硬线。尝试设计,您甚至可以添加边框以获得经典的进度条外观:)https://jsfiddle.net/uoL8j147/1/
You can create a progress-bar of any html element that you can set a gradient to. (Pretty cool!) In the sample below, the background of an HTML element is updated with a linear gradient with JavaScript:
PS I have set both locations
percentage
the same to create a hard line. Play with the design, you can even add a border to get that classic progress-bar look :)https://jsfiddle.net/uoL8j147/1/
尽管可以使用 setInterval 构建进度条并对其宽度进行动画处理,
以便在制作动画时获得最佳性能必须考虑进度条仅限合成器属性和管理层计数。
这是一个例子:
Though one can build a progress bar using setInterval and animating its width
For best performance while animating a progress bar one has to take into account compositor only properties and manage layer count.
Here is an example:
您可以使用 CSS3 动画重新创建进度条,使其看起来更好。
JSFiddle 演示
HTML
CSS/CSS3
You could recreate the progress bar using CSS3 animations to give it a better look.
JSFiddle Demo
HTML
CSS/CSS3
您可以使用 ProgressBar.js。无依赖性、简单的 API 并支持主要浏览器。
在演示页面中查看更多使用示例。
You could use ProgressBar.js. No dependencies, easy API and supports major browsers.
See more examples of usage in the demo page.
如果您需要在 php 和 java 脚本中显示和隐藏进度条,请按照此步骤操作。它是一个完整的解决方案,不需要任何库等。
图片链接:从此处下载图片
If you need to show and hide progress bar inside your php and java script, then follow this step.Its a complete solution, no need of any library etc.
Image link: Download image from here
您可以使用setInterval来创建进度条。
You can use setInterval to create a progress bar.
我正在写一个类似问题的答案,但已被删除,因此我将其发布在这里,以防它对任何人有用。
标记可以放置在任何地方,即使隐藏也可以占据 50 像素的垂直空间。 (为了让它不占用垂直空间并覆盖顶部 50px,我们可以给
progressContainerDiv
绝对定位(在任何定位元素内)并设置display
属性的样式visible
属性。)一般结构基于 这篇极客为极客文章。
I was writing up an answer to a similar question that got deleted, so I'm posting it here in case it's of use to anyone.
The markup can be dropped in anywhere and takes up 50px of vertical real estate even when hidden. (To have it take up no vertical space and instead overlay the top 50px, we can just give the
progressContainerDiv
absolute positioning (inside any positioned element) and style thedisplay
property instead of thevisible
property.)The general structure is based on code presented in this Geeks for Geeks article.