Barras de Progreso
Las barras de progreso se encargan de mostrar el progreso de una tarea tal como una transferencia o subida de un archivo, carga de información, etc.
El método progressbar()
El método progressbar() declara que un elemento del HTML debe ser gestionado y tratado en la forma de una barra de progreso. Las opciones del mismo son un objeto que especifica el comportamiento y la apariencia de este.
El método progressbar() puede ser utilizado de dos maneras:
• $(selector, context).progressbar (options)
• $(selector, context).progressbar ("action", params)
Veamos un ejemplo del uso del mismo:
- Primero incluimos los archivos necesarios, las librerías de jQuery así como los CSS:
<script src="http://code.jquery.c...1.js"></script>
<script src="http://code.jquery.c...i.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />- Añadimos algunos estilos para las etiquetas y la barra como tal:
.ui-progressbar {
position: relative;
}
.progress-label {
position: absolute;
left: 50%;
top: 4px;
font-weight: bold;
text-shadow: 1px 1px 0 #fff;
}
</style>
- Instanciamos nuestro método progressbar() lo asociamos a un contenedor y adicionalmente agregamos algunos eventos para que detecten cuando la subida o transferencia este en progreso y finalmente cuando esta se haya completado:
$(function() {
var progressbar = $( "#progressbar" ),
progressLabel = $( ".progress-label" );
progressbar.progressbar({
value: false,
change: function() {
progressLabel.text( progressbar.progressbar( "value" ) + "%" );
},
complete: function() {
progressLabel.text( "Complete!" );
}
});
function progress() {
var val = progressbar.progressbar( "value" ) || 0;
progressbar.progressbar( "value", val + 1 );
if ( val < 99 ) {
setTimeout( progress, 100 );
}
}
setTimeout( progress, 3000 );
});
</script>
- Por ultimo agregamos nuestro código HTML y las etiquetas <div> donde nuestra barra de progreso será desplegada:
<body>
<div id="progressbar"><div class="progress-label">Loading...</div></div>
</body>
La implementación de nuestro código luciría de la siguiente forma en el navegador:
Por último aquí les dejamos el código completo para que puedan probarlo por ustedes mismos, sin olvidar que podemos probar diferentes opciones, eventos e incluso estilos para nuestra barra de progreso.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Progressbar - Custom Label</title>
<link rel="stylesheet"
href="http://code.jquery.c.../jquery-ui.css" />
<script src="http://code.jquery.c...1.js"></script>
<script src="http://code.jquery.c...i.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<style>
.ui-progressbar {
position: relative;
}
.progress-label {
position: absolute;
left: 50%;
top: 4px;
font-weight: bold;
text-shadow: 1px 1px 0 #fff;
}
</style>
<script>
$(function() {
var progressbar = $( "#progressbar" ),
progressLabel = $( ".progress-label" );
progressbar.progressbar({
value: false,
change: function() {
progressLabel.text( progressbar.progressbar( "value" ) + "%" );
},
complete: function() {
progressLabel.text( "Complete!" );
}
});
function progress() {
var val = progressbar.progressbar( "value" ) || 0;
progressbar.progressbar( "value", val + 1 );
if ( val < 99 ) {
setTimeout( progress, 100 );
}
}
setTimeout( progress, 3000 );
});
</script>
</head>
<body>
<div id="progressbar"><div class="progress-label">Loading...</div></div>
</body>
</html>