vitamins

vitamin fiddle

by Justin

HTML

<div class="vitamins">
    	<h2>Vitamins</h2>
    <div class="vitamin a"> 
        <a href="/vitamin">Vitamin А</a>	
        <div class="count">0.01 мг</div>
    </div>
    <div class="vitamin b1"> 
        <a href="/vitamin-b1">Vitamin B1</a>	
        <div class="count">0.07 мг</div>
    </div>
    <div class="vitamin b2"> 
        <a href="/vitamin-b2">Vitamin B2</a>	
        <div class="count">0.05 мг</div>
    </div>
    <div class="vitamin b4"> 
        <a href="/vitamin-b4">Vitamin B4</a>	
        <div class="count">8.40 мг</div>
    </div>
    <div class="vitamin b5"> 
        <a href="/vitamin-b5">Vitamin B5</a>	
        <div class="count">0.26 мг</div>
    </div>    
</div>

CSS

* {font-family:Arial;}
.vitamins .vitamin {
    float: left;
    width: 100%;
    margin: 7px 0;
    position: relative;
}
.vitamins .vitamin > a {
    float: left;
    margin: 0 10px 0 0;
    width: 140px;
    color: #444;
    text-decoration: none;
}
.vitamins .vitamin > .count {
    float: left;
    width: auto;
    min-width: 60px;
}
.vitamins .vitamin_amount {
    background: #F3F3F3;
    text-align: center;
    top: 0;
    float: left;
    left: 50%;
    width: 50%;
    height: 20px;
    position: absolute;
}
.vitamins .vitamin_amount span {
    background: #FF8686;
    max-width: 100% !important;
    float: left;
    height: inherit;
    text-align: left;
}

JavaScript

var summary_count = 0;
	$('.vitamins .vitamin .count').each(function(){
		summary_count += parseFloat($(this).text());
	});

	$('.vitamins .vitamin').each(function() {
		var this_count_raw = parseFloat($(this).find('.count').text());
		var this_count = parseFloat(this_count_raw / summary_count * 100);
		$('<span></span>').appendTo($(this)).css('width', '0').wrap('<div class="vitamin_amount"></div>');
		$(this).find('.vitamin_amount span').animate({width: + this_count + '%'}, 2000);
	});