У меня есть элемент div внутри, что у меня есть список элементов (ol). Я использую drag and drop, используя jquery nestable. Пожалуйста, посмотрите здесь (How to scroll the window automatically when mouse moves bottom of the page using jquery).Как сделать скрипт прокрутки эффективно?
Я использовал для получения видимого <li>
в текущем состоянии, используя view-port (плагин - http://www.appelsiini.net/projects/viewport).
Я использовал приведенный ниже сценарий. Я не мог прокручивать страницу более эффективно и скрипт не работает в FF (прокрутка не работает).
if ($('.dd-dragel').length > 0) {
var totalVisibleLi = $('#ol_id li:visible').length;
var liInViewPort = $('#ol_id li:in-viewport').length;
var closestLi = $(this.placeEl).prev('li');
var items = $('#ol_id li:in-viewport');
var indexOfClosestLi = items.index(closestLi);
if (indexOfClosestLi >= (liInViewPort - 3) && (e.pageY < $('#div_id').height())) {
$('body').animate({
scrollTop: $(window).scrollTop() + 200
}, 1);
}
if (indexOfClosestLi <= 3) {
$('body').animate({
scrollTop: $(window).scrollTop() - 200
}, 1);
}
}
Что мне здесь не хватает?
Во-первых, для FF вам нужно: '$ ('body, html'). Animate ({...})'. Я просто проверяю ссылку, которую вы разместили, и ответ использует ее: '$ ('html, body')' Итак, в чем ваша проблема? Не могли бы вы начать с использования кода, который пытался помочь вам опубликовать ?! –
Прокрутка работает, но она негладна, как ожидалось. прокрутка вверх ведет себя неожиданно – Achaius
Мой комментарий должен был ответить на ваше утверждение: << и скрипт не работает в FF >> Так что если он работает на FF, не публикуйте это ... BTW, для плавной прокрутки я предлагаю используйте вместо этого переход CSS3, но он немного сложнее и не поддерживается в старых браузерах. –