Skip to content

Instantly share code, notes, and snippets.

Created August 11, 2014 20:16
Show Gist options
  • Save anonymous/722a068667d45f8b2623 to your computer and use it in GitHub Desktop.
Save anonymous/722a068667d45f8b2623 to your computer and use it in GitHub Desktop.
Untitled
html,body {
height: 100%;
}
body:before {
content: '';
height: 100%;
display: inline-block;
vertical-align: middle;
}
meter {
width: 100%;
height: 3em;
display: inline-block;
vertical-align: middle;
}
<meter value=".7" high=".8"></meter>
function transitionTo(meter, newVal) {
var transitionSpeed = (newVal - meter.value)/100;
if (meter.isTransitioning) {
meter.cancelCurrentTransition = true;
} else {
meter.isTransitioning = true;
}
function transitionFrame(speed) {
return function() {
var curVal = parseFloat(meter.value);
if (Math.abs(curVal - newVal) > 1.0e-3 && !meter.cancelCurrentTransition) {
meter.value += speed;
window.requestAnimationFrame(transitionFrame(speed));
} else if (meter.cancelCurrentTransition) {
meter.cancelCurrentTransition = false;
} else {
meter.isTransitioning = false;
}
}
}
window.requestAnimationFrame(transitionFrame(transitionSpeed));
}
var meter = document.querySelector('meter');
meter.addEventListener('mouseenter', function() {
transitionTo(meter, .9);
});
meter.addEventListener('mouseleave', function() {
transitionTo(meter, .7);
});
{"view":"split-vertical","fontsize":"100","seethrough":"","prefixfree":"1","page":"html"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment