Плавная прокрутка DIV

230
15 декабря 2016, 16:19

Есть див, при определённых обстоятельствах в него подгружается информация, соответственно размеры дива растут. Размеры дива по умолчанию подстроены под ширину страницы. При заполнении дива содержимым появляется скролл и скрипт автоматом скроллится в самый низ дива.

Для скролинга используется:

$('#div').scrollTo('max', 300);

где 300 - скорость скрола.
max - указатель, что див нужно перемотать максимально вниз.

Если скорость перемотки 0 - всё отлично работает, появляется содержимое и див моментально сдвигается вверх и новое содержимое мы сразу видим. Если уйти со страницы (переключиться на другую вкладку, программу и т.д.) - то при заходе на страницу мы видим самое последнее содержимое (т.е. див при получении нового содержимого успешно скроллился вниз).

Но вот если скорость скроллинга выше, т.е. мы пытаемся визуально получить "плавную" прокрутку - скрипт начинает вредничать. Если страница открыта, то при получении нового содержимого див скроллится как нужно. Но вот если переключиться на другую вкладку или программу (т.е. скрыть сам див из поля зрения) - скроллинг замирает, и начинает воспроизводится в момент, когда ты снова открываешь страницу. И получается эффект очень замедленной перемотки вниз, который нельзя никаким образом остановить (даже мышью) и пока див полностью не проскроллится - ничего не сделаешь. Выглядит очень ужасно:)

Почему это происходит и как обойти?
Примечательно: если переключиться на другую программу (например Скайп), и на заднем фоне программы смотреть на страницу с дивом, при появлении нового содержимого - она успешно скроллится и визуально всё симпатично, проблема возникает именно если полностью переключиться со страницы или браузера.

Answer 1

А так пробовали?:

$("#my_div").animate({
    scrollTop: $("#end_div").offset().top
}, 1000);
READ ALSO
icons спрайт, что-то не так?

icons спрайт, что-то не так?

Проблема в том что я не могу сделать спрайтВ браузере стилей с этими классами ничего нет

212
Как растянуть flowplayer на весь экран?

Как растянуть flowplayer на весь экран?

Подскажите, как растянуть flowplayer на весь экранБлагодарю

428
ie 11 некорректно работает с flex?

ie 11 некорректно работает с flex?

Разбирался с flex, переделал тестовый макет на flex

238
Bootstrap и его табы: переход к якорю на другой вкладке, открыть другую вкладку

Bootstrap и его табы: переход к якорю на другой вкладке, открыть другую вкладку

Просмотрел множество тем и попробовал внедрить некоторый код js, с грехом пополам работает:

500