Показать сообщение отдельно
  #7 (permalink)  
Старый 08.12.2012, 10:06
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Вот сделал на скорую руку. Когда мышь над дивом - скролл у боди отсутствует
Интересует мнение, как это будет работать если в этих дивах буду дочерние элементы и боди будет заполнен

<!DOCTYPE HTML>
<html>
  <head>
    <style>
      div {
        width: 60px;
        height: 60px;
        margin: 100px;
      }
    </style>
  </head>
  <body style="height:1000px">
    <div id="a" style="background:#f00"></div>
    <div id="b" style="background:#ff0"></div>
    <div id="c" style="background:#f0f"></div>
    <div id="d" style="background:#0ff"></div>
    <div id="e" style="background:#00f"></div>

    <script>
      function offScroll () {
      	document.body.style.overflow = "hidden";
		this.onmouseout = function () {
			document.body.style.overflow = "auto";
		};	
      }
      
	document.getElementById("a").onmouseover = function () {
		offScroll();
	};
	document.getElementById("b").onmouseover = function () {
		offScroll();
	};
	document.getElementById("c").onmouseover = function () {
		offScroll();
	};

	document.getElementById("d").onmouseover = function () {
		offScroll();
	};

	document.getElementById("e").onmouseover = function () {
		offScroll();
	};
    </script>

  </body>
</html>

этот же пример в ссылке http://learn.javascript.ru/play/oOxmqb









По идее onmouseout должен срабатывать при попадании на дочерний элемент элемент у div1 (линк), но этого не происходит, почему?

<!DOCTYPE HTML>
<html>
<head>
	<style>
		#div1 {
			width: 200px;
			height: 200px;
			margin: 50px auto;
			background: #000;
			position: relative;
		}
		#div2 {
			width: 180px;
			height: 180px;
			background: #f00;
			position: absolute;
			left: 0;
			right: 0;
			top: 0;
			bottom: 0;
			margin: auto;
		}
		#div3 {
			width: 160px;
			height: 160px;
			background: #0f0;
			position: absolute;
			left: 0;
			right: 0;
			top: 0;
			bottom: 0;
			margin: auto;
		}
		#div4 {
			width: 140px;
			height: 140px;
			background: #00f;
			position: absolute;
			left: 0;
			right: 0;
			top: 0;
			bottom: 0;
			margin: auto;
		}
	</style>
</head>
<body style="height:1000px;">
<div id="div1">
	<div id="div2">
		<div id="div3">
			<div id="div4"></div>
		</div>
	</div>
</div>

<script>
	function offScroll () {
		document.body.style.overflow = "hidden";
		this.onmouseout = function () {
			document.body.style.overflow = "auto";
		};
	}

	document.getElementById("div1").onmouseover = function () {
		offScroll();
	};
</script>

</body>
</html>

этот же пример в ссылке http://learn.javascript.ru/play/Yt9EMb

Последний раз редактировалось dmitry111, 08.12.2012 в 10:28.
Ответить с цитированием