Я пытаюсь анимировать кнопку «прокрутка вверх» для div с переполнением, установленным на auto (полосы прокрутки отображаются как переполнение, превышающее пределы div, так что это не выпуск). При нажатии кнопки я вызываю цикл for в функции javascript (не jquery). Каждое нисходящее приращение цикла for (начиная с текущей позиции element.scrollTop) заключается в постепенном возврате прокрутки до тех пор, пока element.scrollTop не станет 0. Очень простой и понятный в теории. Работает как сон в IE (очень нетипичный!), Но НЕ РАБОТАЕТ в Firefox или Chrome !!!! Все, что он делает, это JUMPS на вершине ... нет гладкой постепенной прокрутки вверх, и это то, что я хочу! Пожалуйста помоги!JAVASCRIPT ONLY (без jquery) animated scrollTop в div
JavaScript:
function scrollUp(d){
var s=document.getElementById(d).scrollTop;
for (x=s; x>0; x=x-1){document.getElementById(d).scrollTop=x;}
}
HTML:
<div id="this_div" class="container">
<div id="top" class="topbutton" onClick="scrollUp('this_div');">Top</div>
</div>
Хотя ваш ответ действительно работает, (спасибо), кажется, что, возможно, мне не хватает «ошибки» с firefox/chrome, и именно это я действительно хочу найти способ обойти. Этот метод, по-видимому, является методом «канальной ленты над отверстием». Пожалуйста, не ошибайтесь, потому что я неблагодарен. – Bob
Я отредактировал код, я добавил что-то сейчас и удалю inline onclick = scrollUp ('this_div') в вашем div. его иногда не бывает. попробуйте –
Функция запускает - уже отлаживается это. В FF и Chrome не «плавно» прокручивается страница вверх, просто прыгает, как и обычная привязка. IE все в порядке. – Bob