Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > как грамотно "подвесить" div


Автор: Astraller 2.8.2007, 15:57
Хочу сделать висящий див (который всегда на странице - даже при прокрутке) но при этой самой прокрутке он дергается... т.е. идёт не плавно... но на этой странице:
http://www.quirksmode.org/resources.html
Все работает отлично. Объясните почему, плиз! smile 

Автор: GZep 2.8.2007, 16:06
это не javascript а css! 
Astraller, разве сложно почитать документацию? смотрите position

Автор: Astraller 2.8.2007, 16:14
Цитата(GZep @ 2.8.2007,  16:06)
это не javascript а css! 
Astraller, разве сложно почитать документацию? смотрите position

position смотрел но не увидел там ничего такого что может мне помочь.
Подскажите что просмотрел. smile 

Автор: AKS 2.8.2007, 16:51
Цитата(Astraller @  2.8.2007,  16:14 Найти цитируемый пост)
Подскажите что просмотрел.

Наверно position:fixed...

Автор: dXdYdZ 3.8.2007, 14:11
Цитата

Наверно position:fixed...

По-моему это оно и есть. Но фиксированное позиционирование работает не во всех браузерах (например оно не работает в IE 6). Поэтому при необходимости универсального решения фиксированное позиционирование применяют вместе с JavaScript (в IE 6 - двигают JavaScript-ом). Но в случае с JavaScript оно и будет подёргиваться.

Автор: AKS 3.8.2007, 15:22
Цитата(dXdYdZ @  3.8.2007,  14:11 Найти цитируемый пост)
Но в случае с JavaScript оно и будет подёргиваться. 

Если в этом самом JavaScript'е написать так:
Код

document.body.setAttribute('background', ' ');
document.body.setAttribute('bgproperties', 'fixed', 0);

, то дергаться не будет...

Автор: dXdYdZ 10.8.2007, 00:49
А в IE это будет работать? Ведь речь идёт про IE, который не поддерживает фиксированное позиционирование.

Автор: Alx 10.8.2007, 04:26
dXdYdZ
надо по onscroll задвать координаты слоя согласно координатам прокрутки (во всех браузерах), а чтобы в IE не было рывков, нужно задать body - background - position - fixed. это такая магическая загадка которую, говорят, придумал сам БГ! ;)

Автор: Alex_B 10.8.2007, 10:32
Вот так можно зафиксировать DIV:
Код

div#fix{
    width:100%;
    top:0px;
    left:0px;
    position:fixed;
    //position: absolute;
    top: expression(
        parseInt( document.documentElement.scrollTop, 10) + 300 + "px"
    );
}


Что бы при прокрутке в IE этот блок не дрожал нужно для body указать:
Код

body{
    margin:0;
    padding:0;
    background-image: url(../images/n.jpg);
    background-attachment: fixed;
}

Автор: dXdYdZ 10.8.2007, 13:30
Ясно. Спасибо за информацию.

Автор: Alx 10.8.2007, 15:02
Alex_B
да, хороший пример

Автор: 12345c 17.8.2007, 13:36
Другой вариант решения - весь контент засунуть в див высотой с окно, а висящие изображения - вне этого дива.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)