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


Автор: axelerat0r 3.10.2007, 22:10
На форуме есть такое окошко - рядом с темой есть знак [?] - при наведении на который выводиться сначала Индикатор загрузки, а потом подсказка. У меня вопрос - как сделать так, чтобы этот индикатор загрузки выводился все время по центру экрана, вне зависимости от того, прокрутил пользователь страницу или нет (как на этом форуме)? У меня получилось вывести это окно по центру, но если прокрутить страницу, то это окно прокручивается вместе с ней

Автор: trigger 4.10.2007, 00:31
Используйте стили. 
Проще говоря подсмотрите как сделано даже http://forum.vingrad.ru/forum/javascripts-firststeps.html
приклейте все это к событию и наслаждайтесь )

Автор: axelerat0r 4.10.2007, 10:25
Пытался подглядеть как сделано на этом форуме, но тут для защиты от копирования JS файл "закодирован"

Автор: dstorm81 4.10.2007, 10:48
чисто по человечски не советую делать так, по крайней мере по наведению на вопрос
меня реально убивает такая фишка, стоит случайно задеть вопросик и начинает грузится (тормозить немного - опера) не понятно что
уж если будешь реализовывать такую штуку, то по крайней мере сделай на сознательное действие пользователя: на клик

слой который отображает загрузку должен името в стилях position:fixed
это его прибъет к экрану 

для 6 осла если не у вас уже не хитровывернутая верствка имеющая весь контент в прокручивающемся блоке, то ищите behaviors und expression

ajax прикручивается в самом конце, темы по нему есть 12345с даже их прикрепил и залил в архив

Автор: dsCode 4.10.2007, 10:54
axelerat0r, какой конкретно вариант центрового позиционирования Вас интересует? Постоянный (меняем скроллинг - див движется за нами) или относительный (первоначально, независимо от того, был скроллинг или нет - див покажется по центру)? Первый вариант настоятельно не рекомендую (дурная практика - очень раздражает юзеров, когда какая-то хрень ползает постоянно за тобой по экрану и мельтешит перед глазами). А второй - пожалуйста - надо просто учитывать значения скроллинга при показе дива и прибавлять их к координатам последнего.

Автор: axelerat0r 4.10.2007, 10:57
У меня стандартный блок с новостями - нажал на заголовок новости, вылазит окошко с индикатором, после того как аякс загрузил текст новости окошко прячется, новость отображается. Аякс у меня уже прикручен и все отлично работает. не получается только это окно сделать ровно по центру экрана, если пользователь прокрутил страницу.

Добавлено через 1 минуту и 36 секунд
Цитата(dsCode @ 4.10.2007,  10:54)
А второй - пожалуйста - надо просто учитывать значения скроллинга при показе дива и прибавлять их к координатам последнего.

Вот так мне и надо. Как это реализовать?

Автор: dsCode 4.10.2007, 11:15
axelerat0r, 

Код

var scroll = 0;
scroll = (
  document.documentElement && document.documentElement.scrollTop
    ? document.documentElement.scrollTop
    : document.body.scrollTop
  );
var bodyHeight = 0;
bodyHeight = (
  document.documentElement && document.documentElement.clientHeight
    ? document.documentElement.clientHeight
    : document.body.clientHeight
);
document.getElementById('loadingDiv').style.top = Math.round(bodyHeight / 2 + scroll) + 'px';

Автор: axelerat0r 4.10.2007, 16:37
Не работает, переменная scroll у меня почему то всегда равна нулю

Автор: dsCode 4.10.2007, 16:43
axelerat0r, не может быть (у меня же работает =)).

1. Есть ли скроллинг? (если есть - какой - вертикальный или горизонтальный? (переменная scroll учитывает только вертикальнй))
2. Присутствует ли тег <body>?
3. Присутствует ли тег DOCTYPE?
4. В каких браузерах тестируете? (хотя, собственно, не важно... для этого кода)
5. Если после проверки с 1 по 3 пункт останутся проблему - выложите полный код.

Автор: axelerat0r 5.10.2007, 09:05
dsCode, спасибо за помощь, все получилось, нашел ошибку.

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