| 
	| 
	
	| 
		
	| 
			
			 
			
				05.05.2011, 00:34
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 05.05.2011 
						Сообщений: 32
					 
		
 |  |  
	| 
				Высота страницы
			 В JS полный новичек. 
Необходимо для div'а присвоить высоту страницы. 
Нашел 3 свойства:
 
document.body.clientHeight 
document.body.scrollHeight	 
document.body.offsetHeight
 
Вопрос в том, как их вставить в html, т.е. чтобы получилось так:
 
<div class="myclass" style="height: *динамическая высота*px;"></div>
 |  |  
	| 
		
	| 
			
			 
			
				05.05.2011, 02:14
			
			
			
		 |  
	| 
		
			|  | Тлен       |  | 
					Регистрация: 02.01.2010 
						Сообщений: 6,601
					 
		
 |  |  
	| 
<html>
  <style type="text/css">
  *{margin:0;padding:0}
  html,body,div {height:100%}
  </style>
  <body>
    <div style="background:#aaf">
      Высота 100%
    </div>
  </body>
</html>
				__________________ 29375, 35
 |  |  
	| 
		
	| 
			
			 
			
				06.05.2011, 12:44
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 02.07.2010 
						Сообщений: 642
					 
		
 |  |  
	| Aetae, смотря что понимать под "высотой страницы". style="height:100%" - это всё же высота вьюпорта броузера на мой взгляд. А высота страницы - это длина вертикального скроллера, какой бы он длинный не был (хоть 3000px), потому как всё, что мы видим в броузере - это и есть одна страница документа.
 |  |  
	| 
		
	| 
			
			 
			
				07.05.2011, 20:22
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 05.05.2011 
						Сообщений: 32
					 
		
 |  |  
	| Aetae, дело в том, что я HTML/CSS знаю хорошо и, к сожалению, на нем нельзя реализовать мою задачу, она правда немного изменилась.
 На странице есть ссылка на всплывающий div, у которого position: absolute, top: 200px
 
 Для страницы, у которой немного информации, этот блок выглядит хорошо, но если страница сильно высокая (6000px), а ссылка на вызов поп-апа находится внизу, то этот блок не видно, т.к. пользователю придется скроллить страницу вверх.
 
 Нужно следующее: *высота верхнего скролла*px + 200px и получившийся результат вставить для значения top
 Чтобы получилось так: <div class="popup" style="top: XXXpx;"></div>
 
 Нашел 3 параметра, отвечающий за скролл:
 window.scrollY
 window.pageYOffset
 document.documentElement.scrollTop
 
 P.S. значение position: fixed не подойдет, т.к. всплывающий div довольно большой по размеру.
 			 Последний раз редактировалось Skyman, 07.05.2011 в 20:25.
 |  |  
	| 
		
	| 
			
			 
			
				07.05.2011, 21:33
			
			
			
		 |  
	| 
		
			|  | Пионэр       |  | 
					Регистрация: 16.11.2009 
						Сообщений: 1,322
					 
		
 |  |  
	| document.documentElement.clientHeightвернет высоту вьюпорта, но если только вёрстка под доктайпом.
 В jQuery, кстати, (если Вы его используете) есть
 $(window).height()
 |  |  
	| 
		
	| 
			
			 
			
				08.05.2011, 21:54
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 05.05.2011 
						Сообщений: 32
					 
		
 |  |  
	| Нашел скрипт, который реализует то, о чем я писал выше.Но что нужно дописать в него, чтобы событие onclick срабатывало только один раз? 
window.onload = function(){
var	wsize = windowWorkSize(),
	testElem = document.getElementById("popup_block"),
	testElemHei =  testElem.offsetHeight;
window.document.onclick = function(){
	testElem.style.top = (document.body.scrollTop || document.documentElement.scrollTop) + 180 + "px";
};
function windowWorkSize(){
var wwSize = new Array();
	if (window.innerHeight !== undefined) wwSize= [window.innerWidth,window.innerHeight]
		else	
			{
				wwSizeIE = (document.body.clientWidth) ? document.body : document.documentElement; 
				wwSize= [wwSizeIE.clientWidth, wwSizeIE.clientHeight];
			};
	return wwSize;
};
};
 |  |  
	| 
		
	| 
			
			 
			
				13.05.2011, 20:03
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 02.07.2010 
						Сообщений: 642
					 
		
 |  |  
	| 
	
 
	| Сообщение от Skyman   |  
	| Aetae, дело в том, что я HTML/CSS знаю хорошо и, к сожалению, на нем нельзя реализовать мою задачу... 
 На странице есть ссылка на всплывающий div, у которого position: absolute, top: 200px
 Для страницы, у которой немного информации, этот блок выглядит хорошо, но если страница сильно высокая (6000px), а ссылка на вызов поп-апа находится внизу, то этот блок не видно, т.к. пользователю придется скроллить страницу вверх...
 |  
	
 А зачем так сложно? И если пользователь двигает скроллер, то ведь Ваш блок уйдет с экрана?! (absolute, top: 200px) 
Используйте CSS position:fixed |  |  |  |