nanobar.js - очень легкий прогрес-бар
Всем привет!
Сам не знаю нафига :lol: , написал(а точнее отредактировал) такую штуку
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>nanobar.js</title>
</head>
<script>
var Nanobar = (function () {
'use strict';
var Bar, Nanobar, move, place, init,
move = function () {
var self = this,
dist = this.width - this.here;
if (dist < 0.1 && dist > -0.1) {
place.call( this, this.here );
this.moving = false;
if (this.width == 100) {
this.el.style.height = 0;
setTimeout( function () {
self.cont.el.removeChild( self.el );
}, 300);
}
} else {
place.call( this, this.width - (dist/10) );
setTimeout( function () {
self.go();
}, 20);
}
};
place = function (num) {
this.width = num;
this.el.style.width = this.width + '%';
};
init = function () {
var bar = new Bar( this );
this.bars.unshift( bar );
};
Bar = function ( cont ) {
this.el = document.createElement( 'div' );
this.el.id = 'nanobar';
this.width = 0;
this.here = 0;
this.moving = false;
this.cont = cont;
cont.el.appendChild( this.el );
};
Bar.prototype.go = function (num) {
if (num) {
this.here = num;
if (!this.moving) {
this.moving = true;
move.call( this );
}
} else if (this.moving) {
move.call( this );
}
};
Nanobar = function () {
var el;
this.bars = [];
el = this.el = document.createElement( 'div' );
this.el.id = 'nanodiv';
el.style.position = 'fixed';
document.getElementsByTagName( 'body' )[0].appendChild( el );
init.call( this );
};
Nanobar.prototype.go = function (p) {
this.bars[0].go( p );
if (p == 100) {
init.call( this );
}
};
return Nanobar;
})();
</script>
<body>
<div class="container">
<br>
<h1>nanobar.js</h1>
<br>
<div class="general-buttons">
<button class="doc_go" onClick="nanobar.go(30)">nanobar.go(30)</button>
<button class="doc_go" onClick="nanobar.go(60)">nanobar.go(60)</button>
<button class="doc_go" onClick="nanobar.go(100)">nanobar.go(100)</button>
</div>
<br>
<hr>
<br>
<p>© 2015 <a href="https://github.com/jacoborus">jacoborus</a> - <a href="https://raw.github.com/jacoborus/nanobar/master/LICENSE">MIT License</a></p>
</div>
<script>
var nanobar = new Nanobar();
nanobar.go(50);
</script>
</body>
<style>
/* стилизация страници */
*{
margin:0;
padding:0;
}
.container{margin:0 auto;max-width: 800px;}
/* /\/\/\/\/\/\/\/\/\/\/\ */
body {
margin: 0; /* удаляем отступы */
}
#nanobar {
background: #ff0000; /* фон */
border-radius: 0px 5px 5px 0px; /* закругление углов */
z-index: 9999; /* верхний индекс */
-webkit-box-shadow: 2px 2px 5px 0px #000000; /* тень для chrome */
-moz-box-shadow: 2px 2px 5px 0px #000000; /* тень для firexox */
box-shadow: 2px 2px 5px 0px #000000; /* тень для остальных браузеров */
filter: progid:DXImageTransform.Microsoft.shadow(direction=135, color=#000000, strength=4); /* тень для Internet Explorer */
width: 0; /* без этого полоска не хочет прятаться =) */
height: 4px; /* ширина полоски */
clear: both;
-webkit-transition: all ease; /* анимация для chrome */
-moz-transition: all ease; /* анимация для firexox */
-o-transition: all ease; /* анимация для opera */
transition: all ease; /* анимация для остальных браузеров */
}
#nanodiv {
width: 100%;
height: 5px;
z-Index: 9999;
top: 0;
}
</style>
</html>
Я написал от лени(просто нефиг делать), а нафига и сам не знаю :lol: Помогите нее куда нибудь применить :lol: |
KosBeg,
какой смысл в удалении при 100% ? |
Цитата:
PS: это форк https://github.com/jacoborus/nanobar/ :yes: |
Цитата:
имеется в виду зачем после заполения на 100% удалять его? Так на ютубе же удаляют))) |
Цитата:
|
Цитата:
я надеюсь вы видели когда делается переход на другую страницу, его удаляют)) даже лично мне кажется что его УДАЛЯТЬ НУЖНО!!! Я пробывал не удалять - получается глупо... Он постоянно в верху страницы :lol: |
Не понимаю, зачем столько JavaScript кода.
<style>
#bar {
position: absolute;
top: 0;
left: 0;
height: 3px;
background: red;
box-sizing: border-box;
-webkit-box-shadow: 1px 1px 6px 0px #333;
-moz-box-shadow: 1px 1px 6px 0px #333;
box-shadow: 1px 1px 6px 0px #333;
-o-transition: 1s width ease;
-ms-transition: 1s width ease;
-moz-transition: 1s width ease;
-webkit-transition: 1s width ease;
transition: 1s width ease;
width: 0;
}
</style>
<div id="bar" class="zero-width"></div>
<button onclick="document.getElementById('bar').style.width='30%';">(30)</button>
<button onclick="document.getElementById('bar').style.width='60%';">(60)</button>
<button onclick="document.getElementById('bar').style.width='100%';">(100)</button>
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>nanobar.js</title>
<style>
/* стилизация страници */
*{
margin:0;
padding:0;
}
.container{margin:0 40%; position: absolute; top: 98%; left 0; width: 280px;}
/* /\/\/\/\/\/\/\/\/\/\/\ */
body {
margin: 0; /* удаляем отступы */
height: 1500px;
position: relative;
}
#nanobar {
background: #ff0000; /* фон */
border-radius: 0px 5px 5px 0px; /* закругление углов */
z-index: 9999; /* верхний индекс */
-webkit-box-shadow: 2px 2px 5px 0px #000000; /* тень для chrome */
-moz-box-shadow: 2px 2px 5px 0px #000000; /* тень для firexox */
box-shadow: 2px 2px 5px 0px #000000; /* тень для остальных браузеров */
filter: progid:DXImageTransform.Microsoft.shadow(direction=135, color=#000000, strength=4); /* тень для Internet Explorer */
width: 0; /* без этого полоска не хочет прятаться =) */
height: 4px; /* ширина полоски */
clear: both;
-webkit-transition: all 0.8s ease; /* анимация для chrome */
-moz-transition: all 0.8s ease; /* анимация для firexox */
-o-transition: all 0.8s ease; /* анимация для opera */
transition: all 0.8s ease; /* анимация для остальных браузеров */
}
#nanodiv {
width: 100%;
height: 5px;
z-Index: 9999;
top: 0;
}
</style>
</head>
<script>
var Nanobar = (function () {
'use strict';
var Bar, Nanobar, init,
init = function () {
var bar = new Bar( this );
this.bars.unshift( bar );
};
Bar = function ( cont ) {
this.el = document.createElement( 'div' );
this.el.id = 'nanobar';
this.width = 0;
this.here = 0;
this.moving = false;
this.cont = cont;
cont.el.appendChild( this.el );
};
Bar.prototype.go = function (num) {
this.el.style.width = num + '%';
};
Nanobar = function () {
var el;
this.bars = [];
el = this.el = document.createElement( 'div' );
this.el.id = 'nanodiv';
el.style.position = 'fixed';
document.getElementsByTagName( 'body' )[0].appendChild( el );
init.call( this );
};
Nanobar.prototype.go = function (p) {
this.bars[0].go( p );
};
return Nanobar;
})();
</script>
<body>
<div class="container">
<p>© 2015 <a href="https://github.com/jacoborus">jacoborus</a> - <a href="https://raw.github.com/jacoborus/nanobar/master/LICENSE">MIT License</a></p>
</div>
<script>
var nanobar = new Nanobar();
window.onscroll = function() {
var height = window.innerHeight; //Высота экрана пользователя
var scrollHeight = document.body.scrollHeight; //Высота всей страницы
var scrollTop = window.pageYOffset || document.documentElement.scrollTop; //Получаем при каждой прокуртке позицию скроллинга
var pos = (scrollTop/(scrollHeight-height))*100;
nanobar.go(pos);
}
window.onscroll()
</script>
</body>
</html>
|
devote,
:victory: половину выкинул, оказалось можно почти всё :) |
Цитата:
Цитата:
PS: я сегодня что-то не то курнул :lol: целый день с меня прет позитифф :lol: |
| Часовой пояс GMT +3, время: 15:05. |