<ul>
<li>скорость 20 <span>км</span></li>
<li>скорость 30 <span>км</span></li>
<li>скорость 40 <span>км</span></li>
<li>40 ка скорость</li>
<li>30 км скорость</li>
<li>20 км скорость</li>
<li>моя скорость 30 км</li>
<li>моя скорость 20 км</li>
<li>моя скорость 50 ка</li>
<li>скорость 10</li>
...
</ul>
var maxSpeed = 0;
$('ul li').each(function () {
// удаляем все буквы, преобразуем к числу
var speed = +$(this).text().replace(/\D/g,'');
if (speed > maxSpeed) {
maxSpeed = speed;
}
});
li.speed-1:before{width: 1%}
li.speed-2:before{width: 2%}
li.speed-3:before{width: 3%}
...
$('li').each(function () {
var speed = +$(this).text().replace(/\D/g,'');
if (speed > 0) {
$(this).addClass('speed-' + (speed/maxSpeed*100).toFixed(0))
}
});
function transform(value, in_min, in_max, out_min, out_max) {
return (value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
value
- текущее значениеin_min
- минимально возможное значение valuein_max
- максимально возможное значение value out_min
- минимальное значение, которое хотим получитьout_max
- максимальное значение, которое хотим получитьvar maxSpeed = 50;
$('strong', $('p')).text(maxSpeed);
$.each($('ul li'), function() {
var speed = Number($(this).text().replace(/\D/g,''));
$(this).append('<div style="width:'+ transform(speed, 0, maxSpeed, 0, 150) +'px"></div>');
});
function transform(value, in_min, in_max, out_min, out_max) {
return (value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
$('li').each(function () {
var speed = +$(this).text().replace(/\D/g,'');
if (speed > 0) {
var i = 'speed-' + (speed/maxSpeed*100).toFixed(0);
$(this).addClass(i).append('<style type="text/css">.'+i+':before{width: '+speed+'%;}</style>');
}
});
/*
li.speed-10:before{width: 10%}
li.speed-20:before{width: 20%}
li.speed-30:before{width: 30%}
li.speed-40:before{width: 40%}
li.speed-50:before{width: 50%}
li.speed-60:before{width: 60%}
li.speed-70:before{width: 70%}
li.speed-80:before{width: 80%}
li.speed-90:before{width: 90%}
li.speed-100:before{width: 100%}
*/