Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Плавающий слой. |
Автор: Al Polonski 27.12.2007, 16:33 | ||||
Есть код плавающего слоя и сам слой
Этот слой можно объявить в коде страницы только в середине или в самом конце. Т.е. он будет вложен в другие слои и таблицы. Не спрашивайте, почему. CMS не разрешает других мест. Между тем, нужно, чтобы слой был прибит к правому нижнему углу. Все отлично работает в примере, где слой лежит в BODY на сайте же он позиционируется, где придется, и скрипт не отрабатывает вообще (предположительно, из-за позиционирования) как это можно обойти? Добавлено через 10 минут и 41 секунду другими словами, тег слоя может быть размещен только где-то глубоко в структуре страницы (внутри ряда таблиц и слоев), но работать он должен без привязки к ним |
Автор: SelenIT 27.12.2007, 16:58 |
1) Плавающие слои раздражают юзера и потому зло. Современные браузеры, включая IE7, поддерживают position:fixed (чтоб слой просто стоял на месте при скроллинге), для IE6 есть неплохой http://www.artlebedev.ru/tools/technogrette/html/fixed_in_msie/ - имхо, этого достаточно и даже слишком. 2) Гарантировать работу position:absolute внутри чего-либо невозможно по определению - кто может поручиться, что среди предков не будет никого с position:relative? 3) Кто мешает вставить нужный код (кстати, это случайно не модный, но противный ползающий флешовый баннер?;) JavaScript-ом же (например, через document.body.appendChild(нечто)) в самый конец? 4) JFYI: приведенный JavaScript-код в принципе способен работать только в IE (из-за screen.availHeight - кстати, она вообще не должна волновать вебмастера, юзер не обязан раскрывать окно на весь экран) и в Quirks mode (из-за привязки к document.body). |
Автор: ksnk 27.12.2007, 17:00 | ||
Лучше, видимо сменить СМС... Ну, или почитать документацию... В принципе, можно достать элемент из любого места, где он лежит сейчас и поместить куда надо...
Примерно так... |
Автор: SelenIT 27.12.2007, 17:04 |
ksnk, а просто document.body.appendChild(x) разве не то же самое делает? Или есть риск сбоя, лучше подстраховаться? |
Автор: ksnk 27.12.2007, 17:08 |
SelenIT, Да, в принципе - удаляется с прежнего места оно само... привычка - почистить за собой ![]() |
Автор: Al Polonski 27.12.2007, 17:33 |
C document.appendChild разобрался. спасибо теперь осталось разобраться с тем, чтобы скрипт запускался только после полной загрузки страницы. сам скрипт в отдельном файле SelenIT, нет, это не баннер P.S. простите за глупые вопросы. с JS не дружу пока ![]() |
Автор: Al Polonski 28.12.2007, 11:57 |
Проблема частично решилась. Но остался еще один момент document.body.scrollTop работает на ура в простом тестовом примере. Но на реальной странице он, почему-то, всегда равен нулю. Соответственно, слой прибивается к нулевой точке и дальше не движется. Есть ли вообще какие-то аттрибуты, показывающие смещение элемента не от начала body, а от нулевой точки экрана? |
Автор: theROMANtic 22.10.2010, 13:40 | ||
такой вопрос. слой1 с позицией фиксед. седующий за ним слой - слой2 отображается под слоем1 как это исправить, подскажите, пожалуйста? |