Вот сделал на скорую руку. Когда мышь над дивом - скролл у боди отсутствует
Интересует мнение, как это будет работать если в этих дивах буду дочерние элементы и боди будет заполнен
<!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