我有一个自定义块视图。我显示最后5个节点标题。如果有人单击更多链接,我想在当前5个节点标题下加载接下来的5个标题。没有页面刷新,也没有寻呼机。这可能吗?我将如何去做呢?
我有一个自定义块视图。我显示最后5个节点标题。如果有人单击更多链接,我想在当前5个节点标题下加载接下来的5个标题。没有页面刷新,也没有寻呼机。这可能吗?我将如何去做呢?
Answers:
因此,这是Drupal世界中许多人试图解决的问题之一。
我最近就这个完全相同的问题以及如何使用Drupal进行了介绍。可悲的是,我从未将幻灯片放到世界其他地方可以看到的任何地方。
这是模块的分解:
最后但并非最不重要的一点是,我根据这个问题在其中添加了一个新项目。该项目的原因是,除了上面提到的问题之外,我还需要更多支持负载的视图,因此我们的项目无法接受。
希望这能回答您的问题。这是我对所有视图加载更多模块的“公正” ;-)的看法。
在Drupal中使用https://github.com/paulirish/infinite-scroll的另一种方法是将任何Drupal寻呼机转换为自动寻呼机-无限滚动寻呼机-加载更多寻呼机。
步骤1
从https://github.com/paulirish/infinite-scroll下载jquery.infinitescroll.min.js 并将其放在/sites/all/themes/YOURTHEME/js/jquery.infinitescroll.min.js中。
第2步
将JavaScript文件添加到主题的.info文件。
第三步
制作一个包含以下代码的自定义JavaScript文件/sites/all/themes/YOURTHEME/js/YOURTHEME.js。
/** * Implementation of autopager @see https://github.com/paulirish/infinite-scroll * All views that have the "autopager" class will have an autopager */ Drupal.behaviors.viewsInfiniteScroll = function(context) { $(function(){ var $container = $('div.autopager div.view-content'); $container.imagesLoaded( function(){ $container.infinitescroll({ navSelector : 'div.autopager .pager', // selector for the paged navigation nextSelector : 'div.autopager .pager-next a', // selector for the NEXT link (to page 2) itemSelector : 'div.autopager .views-row', // selector for all items you'll retrieve loading: { finishedMsg: 'No more pages to load.', img: '/sites/all/themes/YOURTHEME/images/loading.gif' } }) }) }); }
步骤4
添加无限滚动加载器的CSS
#infscr-loading { position: fixed; text-align: center; bottom: 300px; left: 42%; z-index: 100; background: white; background: hsla( 0, 0%, 100%, 0.9 ); padding: 20px; color: #222; font-size: 15px; font-weight: bold; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; }
第5步
确保jquery版本高于1.7.1。使用http://drupal.org/node/1058168中描述的方法之一在Drupal中安装较新版本的jQuery。
我无法在第一个答案上添加评论。但是您应该添加新模块:https : //www.drupal.org/project/gd_infinite_scroll 此模块可让您将任何内容和寻呼机转换为无限滚动或加载更多寻呼机。
从模块页面:
提供一个使用无限滚动jQuery插件的管理:使用分页器在自定义页面上使用自动分页器。您可以使用滚动自动加载或加载更多按钮。