Simple infinite scroll plugin for those who tried mainstream solutions like infiniteScroll or another and it didn't fit.
- Only one request to a server when an element-toggler appears in viewport (when I tested, other libraries made 5-7 requests for some strange reasons)
- Callback function with collection of newloaded elements. You can do any javascript post-actions only with new part of elements. It's very useful solution if too many elements on the page.
Add this line to your application's Gemfile:
gem 'lazypager-rails'
And then execute:
$ bundle
Add to javascript manifest (application.js
):
//= require lazypager
coffeescript:
lazypager = new Lazypager
container: "#catalog"
navSelector: "a.infinite-loader"
nextSelector: "a.infinite-loader:last"
blockSelector: ".item"
img: "<img src='' />"
imgClass: 'infinite-loader-img'
callback: (elements) ->
console.log elements
pure js:
var lazypager;
lazypager = new Lazypager({
container: "#catalog",
navSelector: "a.infinite-loader",
nextSelector: "a.infinite-loader:last",
blockSelector: ".item",
img: "<img src='' />",
imgClass: 'infinite-loader-img',
callback: function(elements) {
return console.log(elements);
}
});
- Fork it ( https://github.com/ExReanimator/lazypager-rails/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request