Comment peut-on s'y prendre pour faire une barre de progression en html/css/javascript. Je ne veux pas vraiment utiliser Flash. Quelque chose dans le sens de ce que l'on peut trouver ici: http://dustincurtis.com/about.html
Tout ce que je veux vraiment, c'est une "barre de progression" qui modifie les valeurs que je donne en PHP. Quel serait votre processus si? Existe-t-il de bons tutoriels à ce sujet?
Vous pouvez le faire en contrôlant la largeur d'une div via css. Quelque chose de grossier dans ce sens:
<div id="container" style="width:100%; height:50px; border:1px solid black;">
<div id="progress-bar" style="width:50%;/*change this width */
background-image:url(someImage.png);
height:45px;">
</div>
</div>
Cette valeur de largeur peut être envoyée depuis php si vous le souhaitez.
Si vous utilisez HTML5, il est préférable d’utiliser la balise <progress>
qui vient d’être introduite.
<progress value="22" max="100"></progress>
Ou créez votre propre barre de progression.
Exemple écrit en sencha
if (!this.popup) {
this.popup = new Ext.Panel({
floating: true,
modal: false,
// centered:true,
style:'background:black;opacity:0.6;margin-top:330px;',
width: '100%',
height: '20%',
styleHtmlContent: true,
html: '<p align="center" style="color:#FFFFFF;font-size:12px">Downloading Data<hr noshade="noshade"size="7" style="color:#FFFFFF"></p>',
});
}
this.popup.show('pop');
http://jqueryui.com/demos/progressbar/
Regardez ça, c'est peut-être ce dont vous avez besoin.
Vous pouvez utiliser le contrôle progressbar.js;
de la barre de progression animée et le petit graphique
Démo et téléchargement link
Utilisation de HTML;
<div id="my-progressbar"></div>
Utilisation de Javascript;
var progressBar;
window.onload = function(){
progressBar = new ProgressBar("my-progressbar", {'width':'100%', 'height':'3px'});
progressBar.setPercent(60);
}
Fondamentalement, il s’agit de ceci: Vous avez trois fichiers: Votre script long PHP, une barre de progression contrôlée par Javascript ( @SapphireSun donne une option ) et un script de progression. La partie difficile est le script de progression; votre long script doit pouvoir rendre compte de sa progression sans communication directe avec votre script de progression. Cela peut prendre la forme d'identificateurs de session mappés sur des compteurs de progression, une base de données ou une vérification des éléments non terminés.
Le processus est simple:
J'ai essayé une barre de progression simple. Ce n'est pas cliquable juste affiche le pourcentage réel. Il y a une bonne explication et code ici: http://ruwix.com/simple-javascript-html-css-slider-progress-bar/
Voici mon approche, j'ai essayé de le garder mince:
HTML:
<div class="noload">
<span class="loadtext" id="loadspan">50%</span>
<div class="load" id="loaddiv">
</div>
</div>
CSS:
.load{
width: 50%;
height: 12px;
background: url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAALCAYAAAC+jufvAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwAAADsABataJCQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAPklEQVQYV2M48Gvvf4ZDv/b9Z9j7Fcha827Df4alr1b9Z1j4YsV/BuML3v8ZTC/7/GcwuwokrG4DCceH/v8Bs2Ef1StO/o0AAAAASUVORK5CYII=);
-moz-border-radius: 4px;
border-radius: 4px;
}
.noload{
width: 100px;
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAALCAYAAAC+jufvAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwAAADsABataJCQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAANUlEQVQYVy3EIQ4AQQgEwfn/zwghCMwGh8Tj+8yVKN0d2l00M6i70XsPmdmfu6OIQJmJqooPOu8mqi//WKcAAAAASUVORK5CYII=);
-moz-border-radius: 4px;
border-radius: 4px;
border: 1px solid #999999;
position: relative;
}
.loadtext {
font-family: Consolas;
font-size: 11px;
color: #000000;
position: absolute;
bottom: -1px;
}
Violon: ici
Barre de progression infinitive utilisant du Javascript pur
<div id="container" style="width:100%; height:5px; border:1px solid black;">
<div id="progress-bar" style="width:10%;background-color: green; height:5px;"></div>
</div>
<script>
var width = 0;
window.onload = function(e){
setInterval(function () {
width = width >= 100 ? 0 : width+5;
document.getElementById('progress-bar').style.width = width + '%'; }, 200);
}
</script>
Je sais que ne fonctionne pas actuellement car les navigateurs ne le prennent pas encore en charge, mais cela aidera peut-être un jour:
Au moment de cet article, attr()
sur des propriétés autres que content
est simplement un Recommandation du candidat1. Dès qu'il sera implémenté, vous pourrez créer une barre de progression avec un seul élément (comme HTML 5 <progress/>
, mais avec de meilleures options de style et du texte à l'intérieur).
<div class="bar" data-value="60"></div>
et pur CSS
.bar {
position: relative;
width: 250px;
height: 50px;
text-align: center;
line-height: 50px;
background: #003458;
color: white;
}
.bar:before {
position: absolute;
display: block;
top: 0;
left: 0;
bottom: 0;
width: attr(data-value %, 0); /* currently not supported */
content: '';
background: rgba(255, 255, 255, 0.3);
}
.bar:after {
content: attr(data-value) "%";
}
Voici la démo en cours ne fonctionne pas .
1 Je ne peux pas imaginer pourquoi cela n’est implémenté dans aucun navigateur. Premièrement, je penserais que si vous avez déjà la fonctionnalité pour content
, il ne devrait pas être trop difficile d’étendre cela (mais bien sûr, je ne sais pas vraiment pour être honnête). Deuxièmement: ce qui précède n’est qu’un bon exemple de la puissance de cette fonctionnalité. Espérons qu'ils commenceront bientôt à le supporter, sinon cela ne fera même pas partie de la spécification finale.
J'ai utilisé cette barre de progression . Pour plus d'informations à ce sujet, vous pouvez passer par link , c'est-à-dire personnalisation, codage, etc.
<script type="text/javascript">
var myProgressBar = null
var timerId = null
function loadProgressBar(){
myProgressBar = new ProgressBar("my_progress_bar_1",{
borderRadius: 10,
width: 300,
height: 20,
maxValue: 100,
labelText: "Loaded in {value,0} %",
orientation: ProgressBar.Orientation.Horizontal,
direction: ProgressBar.Direction.LeftToRight,
animationStyle: ProgressBar.AnimationStyle.LeftToRight1,
animationSpeed: 1.5,
imageUrl: 'images/v_fg12.png',
backgroundUrl: 'images/h_bg2.png',
markerUrl: 'images/marker2.png'
});
timerId = window.setInterval(function() {
if (myProgressBar.value >= myProgressBar.maxValue)
myProgressBar.setValue(0);
else
myProgressBar.setValue(myProgressBar.value+1);
},
100);
}
loadProgressBar();
</script>
J'espère que cela pourra être utile à quelqu'un.
Vous pouvez créer une barre de progression de tout élément HTML sur lequel vous pouvez définir un dégradé. (Pretty cool!) Dans l'exemple ci-dessous, l'arrière-plan d'un élément HTML est mis à jour avec un dégradé linéaire avec JavaScript:
myElement.style.background = "linear-gradient(to right, #57c2c1 " + percentage + "%, #4a4a52 " + percentage + "%)";
Post-scriptum J'ai défini les deux emplacements percentage
le même pour créer une ligne dure. Jouez avec le design, vous pouvez même ajouter une bordure pour obtenir le look classique de la barre de progression :)
var myPer = 35;
$("#progressbar")
.progressbar({ value: myPer })
.children('.ui-progressbar-value')
.html(myPer.toPrecision(3) + '%')
.css("display", "block");
Si vous avez besoin d'afficher et de masquer la barre de progression dans votre script php et Java, suivez cette étape. C'est une solution complète, pas besoin de bibliothèque, etc.
//Design Progress Bar
<style>
#spinner
{
position: absolute;
left: 50%;
top: 50%;
background-color: white;
z-index: 100;
height: 200px;
width: 300px;
margin-left: -300px;
/*Change your loading image here*/
background: url(images/loading12.gif) 50% 50% no-repeat ;
}
</style>
//Progress Bar inside your Page
<div id="spinner" style=" display:none; ">
</div>
// Button to show and Hide Progress Bar
<input class="submit" onClick="Show()" type="button" value="Show" />
<input class="submit" onClick="Hide()" type="button" value="Hide" />
//Java Script Function to Handle Button Event
<script language="javascript" type="text/javascript">
function Show()
{
document.getElementById("spinner").style.display = 'inline';
}
function Hide()
{
document.getElementById("spinner").style.display = 'none';
}
</script>
Lien de l'image: Télécharger l'image à partir d'ici
Vous pouvez recréer la barre de progression en utilisant des animations CSS3 pour lui donner un meilleur aspect.
HTML
<div class="outer_div">
<div class="inner_div">
<div id="percent_count">
</div>
</div>
CSS/CSS3
.outer_div {
width: 250px;
height: 25px;
background-color: #CCC;
}
.inner_div {
width: 5px;
height: 21px;
position: relative; top: 2px; left: 5px;
background-color: #81DB92;
box-shadow: inset 0px 0px 20px #6CC47D;
-webkit-animation-name: progressBar;
-webkit-animation-duration: 3s;
-webkit-animation-fill-mode: forwards;
}
#percent_count {
font: normal 1em calibri;
position: relative;
left: 10px;
}
@-webkit-keyframes progressBar {
from {
width: 5px;
}
to {
width: 200px;
}
}
Vous pouvez utiliser ProgressBar.js . Aucune dépendance, API facile et supporte les principaux navigateurs.
var line = new ProgressBar.Line('#container');
line.animate(1);
Voir plus d'exemples d'utilisation dans la page de démonstration.