Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.02.2017, 09:02
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Откуда взялось 50% понять не могу.
Ответить с цитированием
  #12 (permalink)  
Старый 07.02.2017, 09:02
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

ksa,
Если даже сделать elems[i].style.width=percent + '%';
все равно выдаст 50% ширины.
Ответить с цитированием
  #13 (permalink)  
Старый 07.02.2017, 09:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Роман Андреевич
Полный пример
Пример у нас считается полным, когда его можно запустить прямо тут и увидеть конечный результат.
Ответить с цитированием
  #14 (permalink)  
Старый 07.02.2017, 09:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Роман Андреевич
Откуда взялось 50% понять не могу.
У тебя пока проблемы с пониманием своего же алгоритма...
Ответить с цитированием
  #15 (permalink)  
Старый 07.02.2017, 09:12
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

понимание простое, есть список li, и есть значения, нужно каждому li поставить сове значение.
Ответить с цитированием
  #16 (permalink)  
Старый 07.02.2017, 09:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Роман Андреевич
понимание простое, есть список li, и есть значения, нужно каждому li поставить сове значение.
Но в своем скрипте пишешь ты совсем другое.

Вот как выглядит именно полный пример.

<!DOCTYPE html>
<style type='text/css'>
li {
	height: 10px;
	border: 1px solid;
}
</style>
<script type='text/javascript'>
var wid = {
	one: {
		value: 150
	},
	two: {
		value: 100
	},
	three: {
		value:50
	},
	four: {
		value:400
	}
}
</script>
<ul>
	<li></li>
	<li></li>
	<li></li>
	<li></li>
</ul>
<script type='text/javascript'>
var elems = document.querySelectorAll('ul li');
var i=0;
for (var s in wid) {
	elems[i++].style.width=wid[s].value + 'px';
}
</script>
Ответить с цитированием
  #17 (permalink)  
Старый 07.02.2017, 09:26
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="UTF-8">
</head>
<body>
		<ul class="balance element">
			<li class="title"></li>
			<li class="total"></li>
		</ul>
</body>
</html>

;(function() {
"use strict";

	function Machine() {

		var   main_balance_total = document.querySelector('.total'),
			components = {
				water: {
					value: 0,
				},
				coffee: {
					value: 0,
				},
				sugar: {
					value: 0,
				},
				milk: {
					value: 0,
				},
				caps: {
					value: 0,
				}
			}

		this.default = function() {
			_addParams();
			_checkParams();
		}

		function _addParams() {
			var total = document.createElement('ul');
				
				main_balance_total.append(total);

			for (var key in components) {
				var li_total = document.createElement('li');

				var percent = Math.round((components[key].value/100);

				li_total.classList.add('balance_item');
				li_total.innerHTML = '<span class="' + key + '"></span>';
				
				total.append(li_total);
			}
		}

		function _checkParams() {
			var span = {
					water: main_balance_total.querySelector('span.water'),
					coffee: main_balance_total.querySelector('span.coffee'),
					sugar: main_balance_total.querySelector('span.sugar'),
					milk: main_balance_total.querySelector('span.milk'),
					caps: main_balance_total.querySelector('span.caps')
				},
				spans = main_balance_total.querySelectorAll('span');



			for (var i =0;i < spans.length;i++) {
				for (var s in components){
					var percent = Math.round((components[s].value*100)/components[s].parent);	
					spans[i].style.width = percent + '%';
				}
			}

		}



	}

	var machine = new Machine();

	machine.default();
})();
Ответить с цитированием
  #18 (permalink)  
Старый 07.02.2017, 09:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Роман Андреевич, порядок ключей в обьекте не гарантируется браузерами, поэтому надёжнее массив
[{value: 150},{value: 100}, .....]

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 ul{
   width: 20%;
 }

  li{
    height: 7px;
    margin: 7px;
    background-color: #0000FF;
  }

  </style>

  <script>
window.addEventListener('DOMContentLoaded', function() {
/*объект значений ширины*/
var wid = {
one: {
value: 150
},
two: {
value: 100
},
three: {
value:50
},
four: {
value:400
}
}
/* список элементов*/
var elems = document.querySelectorAll('ul li');
Object.keys(wid).forEach(function(el,i) {
       elems[i].style.width = wid[el].value+'%';
});
/*Далее необходимо задать всем li из списка ширину - значения в объекте wid*/

    });
  </script>
</head>

<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>


</body>
</html>
Ответить с цитированием
  #19 (permalink)  
Старый 07.02.2017, 09:30
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Спасибо, вроде разобрался
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Суммарная ширина всех блоков MadChild jQuery 6 25.04.2014 15:16
Не работает скрипт отображения списка Konstantine Javascript под браузер 3 18.03.2013 06:00
Динамическое добавление выпадающего списка В IE stepennwolf Internet Explorer 3 04.11.2011 17:36
Помогите с калькулятором piton1175 AJAX и COMET 0 16.06.2011 14:29
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40