Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Плавающий DIV
 
 автор: aleksej_sumarok   (09.10.2009 в 16:15)   письмо автору
 
 

<html>
<head>
<title>Fly DIV</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script type="text/javascript">
var lastScrollY = 10;
var percent;
var diffY;

function move()
{
  diffY = document.body.scrollTop;
  percent = 0.1 * (diffY - lastScrollY) + 30;
  if(diffY != lastScrollY)
  {
    if (percent > 0) {
        percent = Math.ceil(percent);
    } 
    else {
        percent = Math.floor(percent);
    }
    document.getElementById('flydiv').style.pixelTop += percent;
    lastScrollY = lastScrollY + percent;
  }
  setTimeout("move()",1);
}
</script>
</head>

<body onload="move()">

<div id="content" style="width:100%;height:1000px;border:1px solid black;"></div>

<div id="flydiv" style="position: absolute; left: 200px;"><b>text text text text text text text text text text text text text text text text text text text text text</b></div>

</body>
</html>


Данный скрипт не работает в Firefox. Нашел решение, заменить document.getElementById('flydiv').style.pixelTop += percent; на document.getElementById("flydiv").style.top = percent + document.getElementById("flydiv").offsetTop + "px"; Но теперь он просто падает вниз и не держится посередине. Подскажите в чем ошибка?

  Ответить  
 
 автор: АЯ   (09.10.2009 в 16:53)   письмо автору
 
   для: aleksej_sumarok   (09.10.2009 в 16:15)
 

Внесите в выложенный вами код следующие изменения:
...
var lastScrollY = TT = 10;
...
else {
        percent = Math.floor(percent);
    }
    TT += percent;
    document.getElementById('flydiv').style.top = TT + 'px';
...


И ещё отмечу.
Вот так как написали вы
setTimeout("move()",1);
пишут только лохи.
"Нормальные пацаны" пишут так:
setTimeout(move,1);
:-)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования