|  | 
	| 
	| 
	
	| 
		
	| 
			
			 
			
				21.02.2013, 02:56
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 01.02.2013 
						Сообщений: 9
					 
		
 |  |  
	| 
				Помогите советом! Как реализовать идею?
			 Помогите советом! Представим что страница сайта поделена вертикально пополам: к примеру одна сторона зелёная, а другая красная. На обеих сторонах по кнопке, при нажатии на которые, пропорции сторон будут меняться. Если на зелёной стороне кнопка была нажата 200 раз, а на красной 800 раз, то соответственно зелёная область будет занимать 20% страницы, а красная - 80%. Желательно что-бы во время нажатия происходило изменение сторон, т.е. динамически. 
 У кого-то есть какие либо идеи как это можно реализовать?
 |  |  
	| 
		
	| 
			
			 
			
				21.02.2013, 03:20
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| Если на красной стороне кнопка будет нажата раз, а на зеленой ни одного разу, то какая пропорция предполагается?Какая формула зависимости размера частей от количества нажатий?
 |  |  
	| 
		
	| 
			
			 
			
				21.02.2013, 03:43
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| 
<!DOCTYPE HTML>
<html>
  <head> 
<style>
* {
 margin:0;
 padding:0;
}
body {
  width:100%;
}
#green {
 display:inline-block;
 height:200px;
 width:50%;
 background-color:green;
}
#red {
 text-align:right;
 display:inline-block;
 height:200px;
 width:50%;
 background-color:red;
}
 </style>
    <script>
(function(){
var LeftClick=500;
var RightClick=500;
return attitude = function(a){
  if(!a){if(RightClick-1)LeftClick++;RightClick--;}
  if(a) {if(LeftClick-1) LeftClick--;RightClick++;}
  //alert(LeftClick+RightClick)
  var attLeft = (100*LeftClick/1000).toFixed(2)
  var attRight=100-attLeft
  document.getElementById('green').style.width=''+attLeft+'%';
  document.getElementById('red').style.width=''+attRight+'%';
}
})();
    </script>
  </head>
  <body>
<div id=green><input type=button value=" Жми " onclick="attitude(0)"></div><div id=red><input type=button value=" Жми " onclick="attitude(1)"></div>
  </body>
</html>
			 Последний раз редактировалось Deff, 21.02.2013 в 04:01.
 |  |  
	| 
		
	| 
			
			 
			
				21.02.2013, 05:36
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 01.02.2013 
						Сообщений: 9
					 
		
 |  |  
	| Спасибо большое     Хорошая реализация, все работает, но мне нужно что бы размер сторон определялся процентным соотношением левого и правого нажатий. К примеру кол-во нажатий левой кнопки это leftButton, а правой - rightButton; длина левой части(в процентах) это leftPercent, а правой - rightPercent.
 
Тогда:
 
	
 
	| Код: |  
	| leftPercent =  leftButton*100/(leftButton+rightButton);
rightPercent = 100-leftPercent;
или
rightPercent = rightButton*100/(leftButton+rightButton); |  
	
 
На счет пропорции 3:0, думаю пусть изначально будет 1:1. |  |  
	| 
		
	| 
			
			 
			
				21.02.2013, 11:56
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| lazerru, 
 Оно вроде как в % добавил Вывод соотношений
 
<!DOCTYPE HTML>
<html>
  <head> 
<style>
* {
 margin:0;
 padding:0;
}
body {
  width:100%;
}
#green {
 display:inline-block;
 height:200px;
 width:50%;
 background-color:green;
}
#green span,#red  span{
 background-color:#fff;
 padding: 0 6px;
 border:1px #000 solid;
}
#red {
 text-align:right;
 display:inline-block;
 height:200px;
 width:50%;
 background-color:red;
}
 </style>
    <script>
(function(){
var LeftClick=500;
var RightClick=500;
Out=function (){
  var attLeft = (100*LeftClick/1000).toFixed(2)
  var attRight=(100-attLeft).toFixed(2)
  document.getElementById('Left').innerHTML=''+ attLeft +'%';
  document.getElementById('Right').innerHTML=''+ attRight +'%';
  document.getElementById('green').style.width=''+ attLeft +'%';
  document.getElementById('red').style.width=''+ attRight +'%';
}
return attitude = function(a){
  if(!a){if(RightClick-1)LeftClick++;RightClick--;}
  if(a) {if(LeftClick-1) LeftClick--;RightClick++;}
  Out ();
}
})();
window.onload = Out;
    </script>
  </head>
  <body>
<div id=green><span id="Left"></span> <input type=button value=" Жми " onclick="attitude(0)"></div><div id=red><span id="Right"></span> <input type=button value=" Жми " onclick="attitude(1)"></div>
  </body>
</html>
 			 Последний раз редактировалось Deff, 21.02.2013 в 12:01.
 |  |  
	| 
		
	| 
			
			 
			
				21.02.2013, 12:03
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| 
	
 
	| Сообщение от lazerru |  
	| leftPercent =  leftButton*100/(leftButton+rightButton); rightPercent = 100-leftPercent;
 |  
	
 В скрипте это соответствует 
  var attLeft = (100*LeftClick/1000).toFixed(2) 
  var attRight=(100-attLeft).toFixed(2) |  |  
	| 
		
	| 
			
			 
			
				21.02.2013, 14:17
			
			
			
		 |  
	| 
		
			|  | CacheVar       |  | 
					Регистрация: 19.08.2010 
						Сообщений: 14,298
					 
		
 |  |  
	| Предложу такой вариант... 
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
* {
 margin:0;
 padding:0;
}
body {
  width:100%;
}
#green {
	float:left;
	height:200px;
	width:50%;
	min-width: 5%;
	max-width: 95%;
	background-color:green;
}
#green span,#red  span{
 background-color:#fff;
 padding: 0 6px;
 border:1px #000 solid;
}
#red {
	float: right;
	text-align:right;
	height:200px;
	width:50%;
	min-width: 5%;
	max-width: 95%;
	background-color:red;
}
</style>
<script type="text/javascript">
(function(){
var AllClick=2;
var LeftClick=1;
var RightClick=1;
Out=function (){
  var attLeft = Math.floor(100*LeftClick/AllClick);
  var attRight=Math.floor(100*RightClick/AllClick)
  attLeft+=100-attLeft-attRight;
  document.getElementById('Left').innerHTML=''+ attLeft +'%';
  document.getElementById('Right').innerHTML=''+ attRight +'%';
  document.getElementById('green').style.width=''+ attLeft +'%';
  document.getElementById('red').style.width=''+ attRight +'%';
}
return attitude = function(a){
	AllClick++;
  if(!a) {LeftClick++;}
  if(a) {RightClick++;}
  Out ();
}
})();
window.onload = Out;
</script>
</head>
<body>
<div id=red>
	<span id="Right"></span> 
	<input type=button value=" Жми " onclick="attitude(1)" />
</div>
<div id=green>
	<span id="Left"></span> 
	<input type=button value=" Жми " onclick="attitude(0)" />
</div>
</body>
</html>
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				21.02.2013, 16:23
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| ksa,Из-за Math.floor(100*LeftClick/AllClick); под конец двигается не на каждый клик
 Имхо (LeftClick/AllClick).toFixed(2) - ощутимей
 (Проценты меняются в DOM с двумя знаками после запятой однозначно(а может и больше
 |  |  
	| 
		
	| 
			
			 
			
				21.02.2013, 22:22
			
			
			
		 |  
	| 
		
			|  | CacheVar       |  | 
					Регистрация: 19.08.2010 
						Сообщений: 14,298
					 
		
 |  |  
	| 
	
 
	| Сообщение от Deff |  
	| toFixed(2) - ощутимей |  
	
 Согласен...    
Просто решил посмотреть как будет смотреться с округлением. |  |  
	| 
		
	| 
			
			 
			
				27.02.2013, 15:52
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 01.02.2013 
						Сообщений: 9
					 
		
 |  |  
	| Ребят, спасибо вам огроменное! Всё работает)) |  |  |  |