Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как перевести пиксели в проценты (https://javascript.ru/forum/misc/73566-kak-perevesti-pikseli-v-procenty.html)

Artur_Hopf 25.04.2018 16:19

Как перевести пиксели в проценты
 
Добрый день. У меня есть два блока, у одного ширина конкретно задана, у второго меняется в зависимости от значения. Выглядит это так:
<div id="data">130</div>
<div id="data1">шкала</div>
<script type="text/javascript">
var data = document.getElementById('data');
var data1 = document.getElementById('data1');
data.style.border = "1px solid rgba(54,162,235,1)";
data.style.width = 30+ "%";
data1.style.background = "rgba(54,162,235,0.2)";
data1.style.width = data.innerHTML +"px";
</script>

Так вот шкала у меня в пикселях, она при максимальном значений не должна превышать значения бордера. Которая в данный момент 30%.
Как переконвертировать значение в проценты? Я хочу написать :
data1.style.width = data.innerHTML +"%";

Но в данный момент это уже 130%, нужно чтобы не превышало заданный бордер в 30%.
Например 0% = 0, а 30% будет равнятся значению 400 или 500 или 1000?:-? Тоесть конец шкалы я тоже сам задаю.
На совсем наверное понятно, но как то так.

рони 25.04.2018 16:46

:write: подожду решения, чтобы понять, что хочет тс ...

Artur_Hopf 25.04.2018 16:55

рони,
Ну вот например значение стало 730. Это равно 730 px, то есть уже больше 30% бордера, а надо чтоб он в пределах бордера плавал, хочу установить значение 30% например равно 1000, 0% соотвественно 0.:blink:
<div id="data">730</div>
<div id="data1">шкала</div>
<script type="text/javascript">
var data = document.getElementById('data');
var data1 = document.getElementById('data1');
data.style.border = "1px solid rgba(54,162,235,1)";
data.style.width = 30+ "%";
data1.style.background = "rgba(54,162,235,0.2)";
data1.style.width = data.innerHTML +"px";
</script>

рони 25.04.2018 17:00

Artur_Hopf,
ок, попробую

Nexus 25.04.2018 17:04

Artur_Hopf, вы случаем не progress bar пытаетесь свелосипедить?

рони 25.04.2018 17:05

Artur_Hopf,
так?
<div id="data">730</div>
<div id="data1">шкала</div>
<script type="text/javascript">
var data = document.getElementById('data');
var data1 = document.getElementById('data1');
data.style.border = "1px solid rgba(54,162,235,1)";
data.style.width = 30 + "%";
data1.style.background = "rgba(54,162,235,0.2)";
data1.style.width = (30 *  data.innerHTML / 1000)  +"%";
</script>

Artur_Hopf 26.04.2018 07:57

рони,
Да, спасибо :thanks:
Nexus,
Не совсем, скорее градусник с плавающей шкалой:blink:


Часовой пояс GMT +3, время: 21:01.