|
|
|
| Здравствуйте.
Подскажите, как можно реализовать позиционирование типа position: fixed в IE? | |
|
|
|
|
|
|
|
для: Kit
(25.09.2006 в 16:18)
| | onscroll=document.onmousewheel=function(){и здесь поправляем положение слоя}
Будет дёргаться слой при прокрутке. | |
|
|
|
|
|
|
|
для: 12345
(25.09.2006 в 17:10)
| | Спасибо :-)
Не могли бы вы показать код, а то я новичок в JavaScript. | |
|
|
|
|
|
|
|
|
для: 12345
(25.09.2006 в 17:22)
| | Ага :-)
Спасибо большое! | |
|
|
|
|
|
|
|
для: Kit
(25.09.2006 в 17:32)
| | посмотрите еще имитацию фреймов:
http://www.456bereastreet.com/lab/cssframes/ | |
|
|
|
|
|
|
|
для: AlexSol
(25.09.2006 в 17:45)
| | Интересное решение, обязательно возьму себе на заметку. Но я не смог придумать, как это приспособить для позиционирования типа fixed для свободного элемента. Я так понимаю, это хорошо подходит только для header'a и footer'a.
12345, я посмотрел вашу ссылку, взял код оттуда и подставил в свою страничку. И перестало опять работать в IE :-( Можете подсказать, что еще можно сделать? | |
|
|
|
|
|
|
|
для: Kit
(26.09.2006 в 13:41)
| | Смотреть, где ошибка - конфликт имён, например, или функции 2 раза определяются (что одно и то же) | |
|
|
|
|
|
|
|
для: 12345
(26.09.2006 в 15:12)
| | Вот, посмотрите мой код, пожалуйста
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title></title>
</head>
<body>
<div id="menuDiv" style="position: absolute;
padding-top: 6px;
padding-right: 6px;
padding-bottom: 6px;
padding-left: 6px;
top: 100px; left: 100px;
background-color: #f5deb3">Постоянно на экране</div>
<SCRIPT>
d = document;
function moveMenu()
{
d.ID('menuDiv').style.left = (13 + (d.all ? (!d.documentElement ? d.body.scrollLeft : d.documentElement.scrollLeft) : pageXOffset)) + 'px';
d.ID('menuDiv').style.top = (17 + (d.all ? (!d.documentElement ? d.body.scrollTop : d.documentElement.scrollTop) : pageYOffset)) + 'px';
}
d.ID = function(I) {return this.getElementById(I);}
onscroll = moveMenu;
ww = null;
if(!d.all)
{
handleMouseWheel = function(t){setTimeout(moveMenu,99);};
addEventListener("DOMMouseScroll", handleMouseWheel, false);
}
for(i=0;i<80;i++) d.write('<font color=#d4d4d4><i>(пропуск строки '+i+')</i></font><br>');
</SCRIPT>
</body>
</html>
|
Это работает в Опере, но не работает в IE.Что неверно? | |
|
|
|
|
|
|
|
для: Kit
(26.09.2006 в 17:04)
| |
<html> <head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title></title>
</head> <body>
<div id="menuDiv" style="position: absolute;
padding-top: 6px;
padding-right: 6px;
padding-bottom: 6px;
padding-left: 6px;
top: 100px; left: 100px;
background-color: #f5deb3">Постоянно на экране</div>
<SCRIPT>
d = document;
d.ID = function(I) {return this.getElementById(I);}
function moveMenu()
{
d.ID('menuDiv').style.left = (100 + (d.all ? (!d.body ?d.documentElement.scrollLeft: d.body.scrollLeft ) : pageXOffset)) + 'px';
d.ID('menuDiv').style.top = (100 + (d.all ? (!d.body ? d.documentElement.scrollTop: d.body.scrollTop) : pageYOffset)) + 'px';
}
onscroll = moveMenu;
ww = null;
if(!d.all)
{
handleMouseWheel = function(t){setTimeout(moveMenu,99);};
addEventListener("DOMMouseScroll", handleMouseWheel, false);
}
for(i=0;i<80;i++) d.write('<font color=#d4d4d4><i>(пропуск строки '+i+')</i></font><br>');
</SCRIPT>
</body></html>
| Так работает. почему-то считает, что documentElement без доктайпа имеется. Соответственно исправлю пример, чтобы он работал в этом случае (на странице примера - доктайп, поэтому было незаметно).
...Нет, тогда с доктайпом не работает. В общем, при доктайпе надо d.documentElement.scrollLeft , а без - d.body.scrollLeft . Как скриптом распознавать доктайп - вопрос открытый. | |
|
|
|
|
|
|
|
для: 12345
(26.09.2006 в 17:35)
| | Спасибо, теперь все нормально :-)
Есть еще вопрос по вашему скрипту. Зачем эта строка?
Извините за глупые вопросы, но я новичок в JavaScript и очень сильно хочется познать сию науку :-) | |
|
|
|