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

  • Автор темы Автор темы Mamont
  • Дата начала Дата начала

Mamont

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

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

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

Вот такая задачка помогите плиз.
 
nu to chto v java scripte ia i sam ponimaiu...a kak v java scripte

я понимаю что нада сделать функцию которая будет к примеру 2 раза в секунду проверять и правельно исправлять положение контейнера...а как его зафиксировать относительно экрана...координаты то идут с начала...
 
<Body OnScroll="......"
поищи в коллекциях JS-скриптов
 
это скрипт:

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>
 
<div style="position:static"> кажется должно работать, перечитывал книжку, случайно наткнулся
 
Hem, не то. Во-первых position:fixed, а во-вторых в ИЕ не работает.

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

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

конкретно
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>

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

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