Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.06.2011, 13:06
Интересующийся
Отправить личное сообщение для DjKoff Посмотреть профиль Найти все сообщения от DjKoff
 
Регистрация: 10.06.2011
Сообщений: 10

вертикальное изменение размеров div'ов как frame'ов
Здравствуйте!

у меня есть примерно такая конструкция:

<div id="wr">
	<div class="d1">cont1</div>
	<div class="hr"></div>
	<div class="d2"></div>
</div>

<style type="text/css">
.d1
	{
	width:100%;
	min-width:1001px;
	height:300px;
	overflow:auto;
	}

.hr
	{
	width:100%;
	height:3px;
	background:#e6e6e6;
	cursor:n-resize;
	}

.d2
	{
	width:100%;
	min-width:1001px;
	height:300px;
	}
</style>


нужно сделать так, чтоб при зажатии div hr он вертикально перемещался тем самым изменяя горизонтальный размер в пользу дива d1 или d2, примерно как frame (но не он) или как это делается в чатах/играх. использовать готовые плагины не очень хочется (хочу использовать ajax), а сам как-то не додумываюсь как сделать. подскажите пожалуйста как сделать или хотя бы статью на эту тему.
Ответить с цитированием
  #2 (permalink)  
Старый 22.06.2011, 14:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от DjKoff
изменяя горизонтальный размер в пользу дива d1 или d2
Эо не совсем понятно...

Сообщение от DjKoff
нужно сделать так ...
И кто в этом встал преградой?
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2011, 22:17
Интересующийся
Отправить личное сообщение для DjKoff Посмотреть профиль Найти все сообщения от DjKoff
 
Регистрация: 10.06.2011
Сообщений: 10

Цитата:
Эо не совсем понятно...
ну.. не знаю даже как объяснить. представте браузерную игру, есть основной контент и чат, так вот, можно чат полностью разворачивать и тогда поле с игрой уменьшится и можно так же делать наоборот. примерно как изменение размера в фреймах.

Цитата:
И кто в этом встал преградой?
никто, лишь моё незнание. я и прошу совета.
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2011, 01:31
Кандидат Javascript-наук
Отправить личное сообщение для `p r o x y Посмотреть профиль Найти все сообщения от `p r o x y
 
Регистрация: 04.05.2009
Сообщений: 105

пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<title>glSBT Client site</title>
	<style type="text/css">
		.d1{
			width:100%;
			min-width:1001px;
			height:300px;
			overflow:auto;
			border: 1px solid #000;
		}

		.hr{
			width:100%;
			height:3px;
			background:#e6e6e6;
			cursor:n-resize;
		}
		.d2{
			width:100%;
			min-width:1001px;
			height:300px;
		}
	</style>
</head>
<body>

<div id="wr">
	<div id="resizeBlock" class="d1">cont1</div>
	<div id="resizer" class="hr"></div>
	<div class="d2"></div>
</div>
</body>
</html>


(function(){ // анонимная функция
		var startResize = 0; // флаг, если 1 - то выполняется resize (только внутри анонимной фнукции)
		
		document.onmousemove = function(e){ // обработчик mouse move на весь документе, если startResize == 1 то выполняется resize
			if (startResize){
				var mousePos = getMousePos(e);
				document.getElementById('resizeBlock').style.height = mousePos.y+'px';
			}
		}
		
		document.getElementById('resizer').onmousedown = function(){// обработчик mouse down на div "HR"
			document.getElementsByTagName('BODY')[0].style.cursor = 'n-resize'; // установка курсора resize на все BODY
			document.onmouseup = function(){// обработчик mouse up на весь документе для остановки resize
				startResize = 0;
				document.getElementsByTagName('BODY')[0].style.cursor = 'default';
			}
			startResize = 1;
		}
		
		// функция получения координат курсора мышки по событию
		function getMousePos(e){
			var x = 0, y = 0;
			if (!e) e = window.event;
			
			if (e.pageX || e.pageY){
				x = e.pageX;
				y = e.pageY;
			}else if (e.clientX || e.clientY){
				x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
				y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
			}
			
			return {'x':x, 'y':y};
		}
	})();
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2011, 01:34
Кандидат Javascript-наук
Отправить личное сообщение для `p r o x y Посмотреть профиль Найти все сообщения от `p r o x y
 
Регистрация: 04.05.2009
Сообщений: 105

> div hr он вертикально перемещался тем самым изменяя горизонтальный размер

Это фраза взрывает мозг XD
Ответить с цитированием
  #6 (permalink)  
Старый 26.06.2011, 21:42
Интересующийся
Отправить личное сообщение для DjKoff Посмотреть профиль Найти все сообщения от DjKoff
 
Регистрация: 10.06.2011
Сообщений: 10

`p r o x y,
спасибо большое за пример, и прости, что взорвал тебе мозг ;DD
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2011, 11:02
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Цитата:
нужно сделать так, чтоб при зажатии div hr он вертикально перемещался тем самым изменяя горизонтальный размер в пользу дива d1 или d2, примерно как frame (но не он) или как это делается в чатах/играх. использовать готовые плагины не очень хочется (хочу использовать ajax)
Вам видимо нужен был slider между двумя блоками. Боюсь, ajax вам для этого не потребуется вообще.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размеров картинки через скрипт SLV Общие вопросы Javascript 4 27.12.2010 11:40
Динамическое изменение размеров блока при наведении мыши! Viktor ------- Общие вопросы Javascript 7 05.05.2009 19:13
изменение размеров iframe underW Events/DOM/Window 6 31.03.2009 15:45
Изменение H3 Как? KruGoZor jQuery 4 23.01.2009 17:44
Изменение размеров в зависимости от картинки lanzs Элементы интерфейса 9 10.12.2008 21:39