Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.02.2013, 02:56
Новичок на форуме
Отправить личное сообщение для lazerru Посмотреть профиль Найти все сообщения от lazerru
 
Регистрация: 01.02.2013
Сообщений: 9

Помогите советом! Как реализовать идею?
Помогите советом! Представим что страница сайта поделена вертикально пополам: к примеру одна сторона зелёная, а другая красная. На обеих сторонах по кнопке, при нажатии на которые, пропорции сторон будут меняться. Если на зелёной стороне кнопка была нажата 200 раз, а на красной 800 раз, то соответственно зелёная область будет занимать 20% страницы, а красная - 80%. Желательно что-бы во время нажатия происходило изменение сторон, т.е. динамически.

У кого-то есть какие либо идеи как это можно реализовать?
Ответить с цитированием
  #2 (permalink)  
Старый 21.02.2013, 03:20
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Если на красной стороне кнопка будет нажата раз, а на зеленой ни одного разу, то какая пропорция предполагается?
Какая формула зависимости размера частей от количества нажатий?
Ответить с цитированием
  #3 (permalink)  
Старый 21.02.2013, 03:43
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 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.
Ответить с цитированием
  #4 (permalink)  
Старый 21.02.2013, 05:36
Новичок на форуме
Отправить личное сообщение для lazerru Посмотреть профиль Найти все сообщения от lazerru
 
Регистрация: 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.
Ответить с цитированием
  #5 (permalink)  
Старый 21.02.2013, 11:56
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 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.
Ответить с цитированием
  #6 (permalink)  
Старый 21.02.2013, 12:03
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 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)
Ответить с цитированием
  #7 (permalink)  
Старый 21.02.2013, 14:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Предложу такой вариант...

<!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>
Ответить с цитированием
  #8 (permalink)  
Старый 21.02.2013, 16:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

ksa,
Из-за Math.floor(100*LeftClick/AllClick); под конец двигается не на каждый клик
Имхо (LeftClick/AllClick).toFixed(2) - ощутимей
(Проценты меняются в DOM с двумя знаками после запятой однозначно(а может и больше
Ответить с цитированием
  #9 (permalink)  
Старый 21.02.2013, 22:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Deff
toFixed(2) - ощутимей
Согласен...
Просто решил посмотреть как будет смотреться с округлением.
Ответить с цитированием
  #10 (permalink)  
Старый 27.02.2013, 15:52
Новичок на форуме
Отправить личное сообщение для lazerru Посмотреть профиль Найти все сообщения от lazerru
 
Регистрация: 01.02.2013
Сообщений: 9

Ребят, спасибо вам огроменное! Всё работает))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите тупею! Как стать яваскрипт разработчиком? Policeman Оффтопик 57 15.12.2011 03:47
Как реализовать переход с одной страницы на другую с помощью клавиш "стрелок" bazilio2010 Общие вопросы Javascript 6 13.11.2011 23:58
Помогите реализовать подобное.. Ingiborn Библиотеки/Тулкиты/Фреймворки 0 21.07.2011 00:52
как реализовать на jQuery скроллинг фоток sensor jQuery 8 31.05.2010 18:51
Динамически увеличивающиеся изображения: как реализовать? cforest Events/DOM/Window 6 24.06.2009 17:16