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


Автор: animegirl 14.4.2013, 16:34
Раньше использовала такую схему:
Код

main_div.appendChild(newdiv);
newdiv.focus();

Меняя код упустила момент когда этот способ сломался и перестал работать. Самое не понятное это то, что ошибок никаких не выводит, но и див не прокручивает как надо. Куда копать?

Автор: Arantir 14.4.2013, 17:30
А newdiv видимый? (без display: none и visiblity: hidden)
Еще, возможно, могут быть у браузеров причуды, у каждого свои, со скроллингом к нестандартно позиционированному элементу (всякие position: absolute, float и т.п. сдвиги элемента от родной позиции).
А он вообще в фокус берется после выполнения этих строк?

Более надежный способ скролла, это
Код

main_div.appendChild(newdiv);
$('html').animate({ scrollTop: newdiv.offset().top }, 0);
и даже анимацию можно сделать ;)

Автор: animegirl 14.4.2013, 17:34
Arantir, Да попытка фокуса уже после прорисовки элемента.
Работало в опере и огнелисе, а теперь не там не там.
Это jquery? Фраймворки даже не рассматриваются.

Автор: Arantir 14.4.2013, 17:52
Цитата(animegirl @  14.4.2013,  16:34 Найти цитируемый пост)
Это jquery? Фраймворки даже не рассматриваются. 

Сори, с чего-то подумал, что .focus() у вас из jQuery.

А если задать что-то (чтобы заметное было) через css-псевдокласс smile, то стиль применяется? 
По-идее, браузеры должны довольно ревниво скроллить к элементу в фокусе, не допуская его отсутствия в пределах видимости пользователя.

Автор: animegirl 15.4.2013, 00:22
Arantir, Ну див создаётся, внутри другие дивы, там текста каритнки.

Добавлено через 16 секунд
всё на классах и стилях

Автор: Arantir 15.4.2013, 01:53
Я имел ввиду 
Код

:focus

Это форум шалит =)
Действительно ли срабатывает фокус, вот в чем хочется убедится. А то если не скроллит, так такое ощущение, что и фокус не сработал.

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