Фиксированое положение div на экране в ie4,5

Mamont

Guest
Фиксированое положение div на экране в ie4,5

Народ помогите пожалуста.
Фишка такая у меня есть контейнер див который содержит в себе набор картинок и текста...так вот мне надо чтобы он находился в фиксированом месте тоесть в момент скрола страницы оставался на одном месте на экране а не стал подниматься или отпускаться вместе со всем остальным.

в netscape6 есть свойство fixed но на него я не хочу опираться потомучто в ie4 и 5 оно отсутствует.

Вот такая задачка помогите плиз.
 

Mamont

Guest
nu to chto v java scripte ia i sam ponimaiu...a kak v java scripte

я понимаю что нада сделать функцию которая будет к примеру 2 раза в секунду проверять и правельно исправлять положение контейнера...а как его зафиксировать относительно экрана...координаты то идут с начала...
 

HEm

Сетевой бобер
<Body OnScroll="......"
поищи в коллекциях JS-скриптов
 

Tn

Guest
это скрипт:

markW = 159; // pixels wide
markH = 112; // pixels high
markX = 0; // percent right
markY = 99.5; // percent down
markRefresh = 50; // milliseconds

// set common object reference
if (!document.all) document.all = document;
if (!document.all.waterMark.style) document.all.waterMark.style = document.all.waterMark;

wMark = document.all.waterMark.style;
wMark.width = markW;
wMark.height = markH;
navDOM = window.innerHeight; // Nav DOM flag

function setVals() {
barW = 0; // scrollbar compensation for PC Nav
barH = 0;
if (navDOM) {
if (document.height > innerHeight) barW = 20;
if (document.width > innerWidth) barH = 20;
} else {
innerWidth = document.body.clientWidth;
innerHeight = document.body.clientHeight;
}
posX = ((innerWidth - markW)-barW) * (markX/100);
posY = ((innerHeight - markH)-barH) * (markY/100);
}

function wRefresh() {
wMark.left = posX + (navDOM?pageXOffset:document.body.scrollLeft);
wMark.top = posY + (navDOM?pageYOffset:document.body.scrollTop);
wMark.visibility = (navDOM?"show":"visible");
}

function markMe() {
setVals();
window.onresize=setVals;
markID = setInterval ("wRefresh()",markRefresh);
}

window.onload=markMe; // safety for Mac IE4.5//-->

это див:

if (strstr(getenv('HTTP_USER_AGENT'), 'MSIE')) $vHide = 'hidden';
else $vHide = 'hide';
<div id="waterMark"style="position:absolute;visibility:$vHide">
......
</div>
 

HEm

Сетевой бобер
<div style="position:static"> кажется должно работать, перечитывал книжку, случайно наткнулся
 

Андрей М.

Guest
Hem, не то. Во-первых position:fixed, а во-вторых в ИЕ не работает.

Tn, не понял, а зачем слой-то скрывать? во вторых, вышеупомянутую задачу решает код в одну строчку, в третьих, определение браузера на стороне сервера не есть хорошо (существует такая вещь как кеширующие прокси)
 

Mamont

Guest
To Andrei M.

Андрей то что ты написал классно...а где можно почитать про свойства слой.style.posTop и document.body.scrollTop и как оно работает или сам напиши если не сложно!
 

Андрей М.

Guest
в гугле:)

конкретно
http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/scrolltop.asp
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties.asp
а вообще:
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/dhtml_reference_entry.asp

как работает:
Код:
<html>
<head>
function no_move(){
   var div=document.getElementById("mydiv");
   var top=div.style.posTop;
   document.body.onscroll=function(){
      div.style.posTop=document.body.scrollTop+top;
   }
}
</script>
<style>
#mydiv {
position:absolute;
top:200px;
width:100px;
height:100px;
background-color:black;
}
</style>
</style>
</head>
<body onload="no_move()">
<div id="mydiv"></div>
<script>
for(i=0;i<200;i++) document.write("<br>&nbsp;");
</script>
</body>
</html>
уфф:)
 

Mamont

Guest
OK ;)
Thanks :) я уже и сам втыкнул как но всёравно спасибо за заботу очень помог =)

С меня пиво...если встретимся =)
 
Сверху