progress bar

This commit is contained in:
Vadim Makeev 2010-11-15 16:45:40 +03:00
parent 4602d63167
commit 994f984452
3 changed files with 34 additions and 8 deletions

View File

@ -142,6 +142,7 @@
<p>Shower: <a href="http://github.com/pepelsbey/shower">github.com/pepelsbey/shower</a></p> <p>Shower: <a href="http://github.com/pepelsbey/shower">github.com/pepelsbey/shower</a></p>
</article> </article>
</section> </section>
<div class="progress"><div></div></div>
</div> </div>
<script src="scripts/script.js"></script> <script src="scripts/script.js"></script>
</body> </body>

View File

@ -1,10 +1,11 @@
(function () { (function() {
var url = document.location, var url = document.location,
linkScreen = document.querySelector('link[title=screen]'), linkScreen = document.querySelector('link[title=screen]'),
linkProjection = document.querySelector('link[title=projection]'), linkProjection = document.querySelector('link[title=projection]'),
shower = document.querySelector('div.shower'), shower = document.querySelector('div.shower'),
slides = document.querySelectorAll('section.slide'), slides = document.querySelectorAll('section.slide'),
slideList = [], hashList = {}, slideList = [], hashList = {},
progress = document.querySelector('div.progress div'),
fullscreen = false; fullscreen = false;
for(var i = 0, slidesLength = slides.length; i < slidesLength; i++) { for(var i = 0, slidesLength = slides.length; i < slidesLength; i++) {
@ -20,6 +21,7 @@
screen.width == window.outerWidth && screen.height == window.outerHeight screen.width == window.outerWidth && screen.height == window.outerHeight
); );
updateView(); updateView();
updateProgress();
} }
function turnSlide(e) { function turnSlide(e) {
@ -43,8 +45,6 @@
case 32 : // Space case 32 : // Space
current += e.shiftKey ? -1 : 1; current += e.shiftKey ? -1 : 1;
break; break;
default:
return;
} }
target = slideList[current]; target = slideList[current];
e.preventDefault(); e.preventDefault();
@ -52,6 +52,7 @@
target = slideList[+e || 0]; target = slideList[+e || 0];
} }
if(target) url.hash = target; if(target) url.hash = target;
updateProgress();
} }
function updateView() { function updateView() {
@ -59,6 +60,10 @@
linkProjection.disabled = !fullscreen; linkProjection.disabled = !fullscreen;
if(!hashList[url.hash]) turnSlide(0); if(!hashList[url.hash]) turnSlide(0);
} }
function updateProgress() {
progress.style.width = (100/(slideList.length-1) * hashList[url.hash]).toFixed(2) + '%';
}
slides[0].addEventListener('click', function(){ slides[0].addEventListener('click', function(){
toggleFull(true); toggleFull(true);

View File

@ -41,7 +41,7 @@ A {
top:-1em; top:-1em;
bottom:-1em; bottom:-1em;
right:-1em; right:-1em;
z-index:10; z-index:3;
width:1.5em; width:1.5em;
border:1em solid #000; border:1em solid #000;
border-left-width:0; border-left-width:0;
@ -240,7 +240,6 @@ A {
position:absolute; position:absolute;
top:0; top:0;
right:3em; right:3em;
z-index:2;
width:1em; width:1em;
height:100%; height:100%;
background:#000; background:#000;
@ -256,13 +255,13 @@ A {
background:#000; background:#000;
} }
.slide.back ARTICLE { .slide.back ARTICLE {
z-index:2; z-index:3;
} }
.slide.back IMG { .slide.back IMG {
position:absolute; position:absolute;
top:0; top:0;
left:50%; left:50%;
z-index:1; z-index:2;
height:100%; height:100%;
-webkit-transform-origin:50% 0; -webkit-transform-origin:50% 0;
-webkit-transform:translate(-50%, 0); -webkit-transform:translate(-50%, 0);
@ -313,4 +312,25 @@ A {
} }
.slide.shout:after { .slide.shout:after {
content:''; content:'';
} }
/* Progress
---------------------------------------- */
.progress {
position:absolute;
right:3em;
bottom:0;
left:3em;
z-index:1;
float:left;
height:0.2em;
background:#CCC;
}
.progress DIV {
width:0;
height:100%;
background:#0174A7;
-webkit-transition:width 0.2s linear;
-moz-transition:width 0.2s linear;
-o-transition:width 0.2s linear;
}