diff --git a/js/views_infinite_scroll.js b/js/views_infinite_scroll.js index 3864f0a..befda76 100644 --- a/js/views_infinite_scroll.js +++ b/js/views_infinite_scroll.js @@ -11,6 +11,12 @@ Drupal.behaviors.views_infinite_scroll = { var settings = Drupal.settings.views_infinite_scroll[key]; var view_selector = '.view-id-' + settings.view_name + '.view-display-id-' + settings.display; var content_selector = view_selector + ' > ' + settings.content_selector; + if(typeof settings.scroll_container != "undefined" && settings.scroll_container != ""){ + var scroll_container = $(settings.scroll_container); + } + else { + var scroll_container = $(window); + } var items_selector = settings.items_selector; var pager_selector = settings.pager_selector; var next_selector = settings.next_selector; @@ -20,6 +26,7 @@ Drupal.behaviors.views_infinite_scroll = { $.ias({ container: content_selector, + scrollContainer: scroll_container, item: settings.items_selector, pagination: settings.pager_selector, next: settings.next_selector, diff --git a/theme/views_infinite_scroll_theme.inc b/theme/views_infinite_scroll_theme.inc index 0dec991..7bc3935 100644 --- a/theme/views_infinite_scroll_theme.inc +++ b/theme/views_infinite_scroll_theme.inc @@ -14,6 +14,7 @@ function theme_views_infinite_scroll_pager($variables) { $parameters = $variables['parameters']; $quantity = $variables['quantity']; $ias = $variables['ias']; + $scroll_container = $ias['scroll_container']; $PAGER_CLASS = 'pager'; global $pager_page_array, $pager_total; @@ -78,6 +79,7 @@ function theme_views_infinite_scroll_pager($variables) { 'pager_selector' => 'ul.' . $PAGER_CLASS, 'next_selector' => 'li.pager-next a:first', 'content_selector' => $content_selector, + 'scroll_container' => $scroll_container, 'items_selector' => $items_selector, 'img_path' => base_path() . $ias['loader'], 'loader_delay' => $ias['loader_delay'], diff --git a/views_plugin_pager_infinite_scroll.inc b/views_plugin_pager_infinite_scroll.inc index dc7485a..1a3b4d1 100644 --- a/views_plugin_pager_infinite_scroll.inc +++ b/views_plugin_pager_infinite_scroll.inc @@ -58,6 +58,13 @@ class views_plugin_pager_infinite_scroll extends views_plugin_pager_full { '#descriptin' => t('Settings for the Infinite Ajax Scroll library.'), ); + $form['ias']['scroll_container'] = array( + '#type' => 'textfield', + '#title' => t('Scroll container'), + '#description' => t('By default, scroll events are listened from the $(window) object. You can use this setting to specify a custom container, for example a div with overflow like .div'), + '#default_value' => $this->options['ias']['scroll_container'], + ); + $form['ias']['loader'] = array( '#type' => 'textfield', '#title' => t('Loader image'),