Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.04.2016, 07:23
Аспирант
Отправить личное сообщение для maxapet Посмотреть профиль Найти все сообщения от maxapet
 
Регистрация: 27.08.2015
Сообщений: 43

Почему не устанавливаются размеры div?
Есть вот такой просто код:
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#lBlkDiv {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 0px;
	height: 0px;
	z-index: 999;
	opacity: 50%;
	background-color: navy;
	display: none;
}
</style>

<script type="text/javascript" lang="javascript">

	var startDelay = 1000;
	
	// навешивание обработчика
	function addEvent(elem, type, handler){
	  if(elem.addEventListener){
		elem.addEventListener(type, handler, false);
	  } else {
		elem.attachEvent('on'+type, handler);
	  }
	  return false;
	}
	
	addEvent(window, 'load', function() {init()});
	
	function init() {
		if(startDelay >= 0)
			setTimeout("showDiv()", startDelay);
		displayCountDown(countDown);
		setInterval("countDownDecr()", 1000);
	}
	
	function showDiv() {
		var w = window.innerWidth
			|| document.documentElement.clientWidth
			|| document.body.clientWidth;

		var h = window.innerHeight
			|| document.documentElement.clientHeight
			|| document.body.clientHeight;
			
		var lBlkDiv = document.getElementById("lBlkDiv");
		
		lBlkDiv.style.display = "block";
		lBlkDiv.style.right = w;
		lBlkDiv.style.bottom = h;
		alert(lBlkDiv.style.display + "\n"
			+ lBlkDiv.style.width + "\n"
			+ w + " : " + h + "\n" + lBlkDiv.style.right + " : " + lBlkDiv.style.bottom);
	}
	
</script>
</head>
<body>
<div id="lBlkDiv">&nbsp;</div>
</body>
</html>


Чего я хотел: через заданное startDelay время должен появляться DIV, накрывающий всю страницу, и блокирующий доступ ко всем её контролам. Но этого не происходит. Всё работает, за исключением установки размеров DIV'а. Сначала пробовал через width и height - тот же нулевой эффект. При этом, значение display изменяется нормально.
Если к w и h добавить "px", то alert эти значения выводит, т.е. они вроде как, появляются у DIV'а, но внешне ничего не меняется - DIV поверх всей страницы не появляется.
Подскажите, пожалуйста, в чём может быть дело, почему не меняются размеры DIV'а? И как их всё-таки изменить?
Ответить с цитированием
  #2 (permalink)  
Старый 24.04.2016, 08:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от maxapet
Сначала пробовал через width и height -
угу
Сообщение от maxapet
Если к w и h добавить "px",
да
Сообщение от maxapet
почему не меняются размеры DIV
потому что в коде нет угу и да
в строках 53 и 54
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2016, 09:39
Аспирант
Отправить личное сообщение для maxapet Посмотреть профиль Найти все сообщения от maxapet
 
Регистрация: 27.08.2015
Сообщений: 43

Простите, не понял?
Ответить с цитированием
  #4 (permalink)  
Старый 24.04.2016, 10:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

maxapet,
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#lBlkDiv {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 0px;
  height: 0px;
  z-index: 999;
  opacity: 50%;
  background-color: navy;
  display: none;
}
</style>

<script type="text/javascript" lang="javascript">

  var startDelay = 1000;

  // навешивание обработчика
  function addEvent(elem, type, handler){
    if(elem.addEventListener){
    elem.addEventListener(type, handler, false);
    } else {
    elem.attachEvent('on'+type, handler);
    }
    return false;
  }

  addEvent(window, 'load', function() {init()});

  function init() {
    if(startDelay >= 0)
      setTimeout("showDiv()", startDelay);
    displayCountDown(countDown);
    setInterval("countDownDecr()", 1000);
  }

  function showDiv() {
    var w = window.innerWidth
      || document.documentElement.clientWidth
      || document.body.clientWidth;

    var h = window.innerHeight
      || document.documentElement.clientHeight
      || document.body.clientHeight;

    var lBlkDiv = document.getElementById("lBlkDiv");

    lBlkDiv.style.display = "block";
    lBlkDiv.style.width = w+"px";
    lBlkDiv.style.height = h+"px";

  }

</script>
</head>
<body>
<div id="lBlkDiv">&nbsp;</div>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 24.04.2016, 10:20
Аспирант
Отправить личное сообщение для maxapet Посмотреть профиль Найти все сообщения от maxapet
 
Регистрация: 27.08.2015
Сообщений: 43

Спасибо, действительно, так работает.. Странно, вроде бы делал так. Видимо, в версиях запутался.
Ответить с цитированием
  #6 (permalink)  
Старый 24.04.2016, 10:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

maxapet,
может без вычислений ...
width: 100%;
  height: 100%;
Ответить с цитированием
  #7 (permalink)  
Старый 24.04.2016, 15:12
Аспирант
Отправить личное сообщение для maxapet Посмотреть профиль Найти все сообщения от maxapet
 
Регистрация: 27.08.2015
Сообщений: 43

Спасибо, попробую.
Спасибо большое за помощь.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не записывается в масив данные freelancer.rnd Общие вопросы Javascript 0 16.08.2015 15:51
Появление div не могу разобраться yura_yushkevich jQuery 6 07.12.2014 13:46
Центр div по центру другого div) BeetleJuice541 Общие вопросы Javascript 5 03.08.2014 13:08
Показать div при наведении / jQuery updaite Элементы интерфейса 4 28.07.2014 03:45
Скрыть div при нажатии на картинку SLameN jQuery 6 14.04.2014 21:27