Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2010, 16:11
Интересующийся
Отправить личное сообщение для cooli0 Посмотреть профиль Найти все сообщения от cooli0
 
Регистрация: 25.01.2010
Сообщений: 20

Как Google это делает ?
Всем привет! Заинтересовался таким вопросом.

У гугла есть имплементация live твиттер модуля. Его можно увидеть, когда в поиске забит какой-то search term, который в данный момент широко обсуждаем на твиттере и других различных новостных порталах.

Пример

http://www.google.com/search?hl=en&s...=&oq=&gs_rfai=

Увидете Latest results for Consumer Prices Are Flat

Интересует такой момент, когда аяксовый запрос находит что-то новое, callback добавляет новый DIV в DOM. Этот DIV имеет отрицательный margin-top, который равен высоте дива. Высота не захардкоджена, она изменяется в зависимости от кол-ва контента. Я попробовал воспроизвести похожий эффект, но, высоту дива не узнать до его появления в DOM. Поэтому вставляю DIV без отрицательного margin-top и сразу же ставлю margin-top значение div.offsetHeight * (-1). При таком подходе в ИЕ6-8 (иногда и в FF) всегда видно, как контент прыгает. Как вы думаете, как гугл делает это так плавно и красиво ?
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2010, 16:23
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от cooli0
высоту дива не узнать до его появления в DOM
так сделайте его в DOM
только внутри другого элемента, невидимого
Сообщение от cooli0
как гугл делает это так плавно и красиво ?
фаербаг в руки, и проверяйте
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2010, 16:25
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Один из вариантов:
> el.style.left = el.style.top = -999 + 'px';
> узнает высоту
> переносит div куда надо.

upd: упс, не успел.
Ответить с цитированием
  #4 (permalink)  
Старый 18.03.2010, 16:54
Интересующийся
Отправить личное сообщение для cooli0 Посмотреть профиль Найти все сообщения от cooli0
 
Регистрация: 25.01.2010
Сообщений: 20

Сообщение от Gvozd Посмотреть сообщение
так сделайте его в DOM
только внутри другого элемента, невидимого

фаербаг в руки, и проверяйте
фаербаг в руках естесственно))

absolute - это само собой разумеется. Просто они не меняют позицию элемента, а каким-то образом определяют сразу...

Ок, спасибо всем))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
1092*0.15=? А на javascript? Как это объяснить бухгатеру? oid Общие вопросы Javascript 15 24.10.2009 12:51
Как это сделать? PAMAC Общие вопросы Javascript 2 10.10.2009 21:02
Выпадающий список как на google... Derack Элементы интерфейса 4 23.07.2009 17:53
Как создать проверку вводимого пароля на стойкость, используя API Google. Александр Черепов Элементы интерфейса 4 03.11.2008 02:16