У меня есть большой массив элементов, которые я отображаю с помощью шаблонов jQuery. Я хочу отображать 50 или около того за раз и показывать больше, когда пользователь прокручивает страницу вниз. Я пытаюсь найти правильную логику работы с полосой прокрутки. Я делаю что-то вроде этого, но прокрутка все еще немного шаткая:

var listItems = this.buildItemList(this.list, regex);    
        var renderItems = this.renderItems;
        renderItems(listItems, wrapper, 50);                    
        wrapper.scroll(function() {
            // This works, but doesn't work quite right. Looks a bit wonky.
            if (wrapper.scrollTop() > .5 * wrapper.children().length * wrapper.children().first().outerHeight())
            {
                renderItems(listItems, wrapper, 30);
            }
        });          

Просмотрите этот jsFiddle, который я написал, это отличный пример того, что мне нужно.

http://jsfiddle.net/8rWTg/32/

Вот что у меня не работает. Я хочу, чтобы элементы добавлялись, когда вы прошли около 80% списка, однако с моей логикой это происходит в разные моменты в зависимости от количества элементов в списке и между браузерами.

0
Shawn 23 Мар 2011 в 01:48
Дайте определение шаткому. Что у вас не работает.
 – 
Hussein
23 Мар 2011 в 02:02
Вы видели рабочий пример этого где-нибудь в дикой природе? Моя первоначальная мысль заключалась в том, что это шатко, потому что размер списка изменяется, что приводит к тому, что полоса прокрутки «отключается» с помощью мыши. Я не понимаю, как вы могли бы обойти это, потому что у вас нет контроля над фактическим взаимодействием полосы прокрутки/мыши. Единственное, что я мог придумать, это размер прокручиваемой области до предполагаемой высоты (много пустого места), а затем использовать ленивую загрузку.
 – 
mrtsherman
23 Мар 2011 в 02:03
Да, это довольно распространено, я вижу это по всему Интернету, я найду вам пример.
 – 
Shawn
23 Мар 2011 в 02:05

1 ответ

Что-то похожее на альбом Imgur? Если вы посмотрите на их код, у них есть функция под названием _levelReached что, вероятно, похоже на то, что вы хотите.

0
Haochi 23 Мар 2011 в 03:11