Показать сообщение отдельно
  #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};
		}
	})();
Ответить с цитированием