从单个节点查看幻灯片


11

我正在尝试从单个节点中的图像实现幻灯片播放。图片是从图片字段上传的。它是drupal7。我制作了新的内容类型,现在所做的只是来自多个节点的幻灯片放映(每个节点中都有一个图像)。这可以正常工作,但是那太麻烦了,无法为每个图像添加新节点。


IMO首选的方式是每个映像有一个节点,因为它更灵活。您可以发布/取消发布节点,将标题/描述文本/链接添加到可在幻灯片放映中使用的节点,可以使用节点队列来安排排序等。您应该添加单个节点实际面临的问题幻灯片放映方法,您尝试过什么,发生了什么,发生了什么损坏等。这是Drupal 6还是7?您使用哪个幻灯片放映模块?
googletorp

@googletorp我在Drupal 7中使用“视图幻灯片”模块。这将是一个简单的幻灯片/简介页面,除了没有标题,描述,导航按钮等的简单图像幻灯片,我不需要其他任何东西。我将视图配置为:format :幻灯片,显示:字段,内容:简介(此节点的我的内容类型)。现在,它在一行中一张一张地显示图像。
smogg

Answers:


10

在视图图像字段设置中的“ 多个字段设置”下,有一个复选框“显示同一行中的所有值”,默认情况下处于选中状态。如果取消选中此框,它将把每张图像放置在新行中,并且将根据需要运行。我知道,至少从版本2开始,视图就具有此功能,但是在较早的版本中,它可能被称为有些不同。

我喜欢以这种方式进行简单的幻灯片显示,可以在一个节点/编辑页面上重新排列所有图像。但是对于更复杂的幻灯片,例如每个图像链接到某个地方或具有替代文本的地方,最好的选择可能仍然是每行使用一个节点。


7

正是您需要的Field Slideshow模块。所有图像都包含在节点内(没有节点膨胀),并且它使用jquery周期(与幻灯片显示的视图相同)来生成动态库和幻灯片。


2

我最近建立了一个拥有简单画廊的站点,最终我根本没有使用其他幻灯片模块。我需要的只是jQuery Cycle和一些JavaScript,已添加到我的自定义主题中。该网站具有“照片”内容类型和“相册”词汇表,用于将照片分配给不同的相册。视图将创建按相册过滤的照片列表。在我的主题中,我有一个js文件,看起来像这样:

(function($){

Drupal.behaviors.myAlbumSlideshow = {
  attach: function(){
    var slideshowContent = $('.view-fotoalbum.view-display-id-page_1>.view-content');

    slideshowContent.before('<div id="slideshow-prev">&lt;</div><div id="slideshow-next">&gt;</div>');

    slideshowContent.cycle({
      fx:       'scrollHorz',
      next:     '#slideshow-next',
      prev:     '#slideshow-prev',
      timeout:  0
    });

    var slideshowHeight = slideshowContent.height() + 'px';
    $('#slideshow-prev, #slideshow-next').css('lineHeight', slideshowHeight);
  }
}

})(jQuery)

一点CSS即可完成:

.view-fotoalbum {
  width: 710px;
  margin-right: 10px;
}

.view-fotoalbum #slideshow-prev {
  color: #808080;
  border-right: 1px solid #808080;
  cursor: pointer;
  float: left;
  line-height: 300px;
  margin-left: -40px;
  text-align: center;
  width: 30px;  
}

.view-fotoalbum #slideshow-next {
  color: #808080;
  border-left: 1px solid #808080;
  cursor: pointer;
  float: right;
  line-height: 300px;
  margin-right: -40px;
  text-align: center;
  width: 30px;
}

PS。恕我直言,每个图像只有一个节点并不总是更好。的确,这种方法提供了更大的灵活性(例如,将一张图像添加到多个幻灯片中),但是对于某些最终用户而言,不必要的灵活性只是毫无意义的复杂性。


2

您可以考虑使用Galleria模块。它使用一个节点,并以幻灯片形式显示其中的图像。


是的,我知道这个模块,并且我在与Gallery相同的站点上使用它。但是,如果没有任何导航按钮等,就很难实现简单的幻灯片显示。但这没关系,我只关注每个节点系统的图像。当我在配置>>性能中打开js压缩时,
Galleria

2

我发现了一种在单个节点中具有多个图像和每个图像多个链接的好方法:

您要做的是确保将图像和链接字段的内容类型都设置为无限制。创建视图时,还请确保未选中“在同一行中显示所有值”。为您的图像和链接添加一个增量字段。添加一个Global:PHP过滤器,并将过滤器代码设置为此:return(!$ row-> delta == $ row-> delta_1);

那应该做。您需要安装Views PHP模块才能使用PHP作为过滤器。


2

要在滑块中显示单个节点的多个图像,请使用动态显示块模块并读取配置设置。在这种情况下,当您创建用于显示滑块的视图时,如果已选中“添加多个字段设置”,请不要选中添加图像复选框,然后取消选中它。



1

就像Drupal中的几乎所有内容一样,对此有很多解决方案,但是我想分享一个我还没有遇到过的简单解决方案。

基本上,我正在寻找一种在幻灯片中显示一堆不同字段的方法,这些字段都附加到单个节点上。这些字段包括图像和文本字段。因此,为了在幻灯片中显示附加到单个节点的所有字段:

  1. 为您的幻灯片创建一个视图。使用“未格式化的列表”格式。
  2. 将视图设置为仅显示一项,以便您仅处理单个节点(或使用上下文过滤器:NID)
  3. 添加要显示在幻灯片中的所有字段。从显示中排除所有字段。
  4. 添加一个自定义字段(确保您从显示中排除的所有字段之后呈现此字段)。在这里您将为幻灯片构建基本标记。使用可用的替换模式,在li项目内设置每个可用字段,如下所示:
    
    <ul id="slider">
    <li>[text_field_1]</li>
    <li>[image_field_1]</li>
    <li>[text_field_2]</li>
    <li>[image_field_2]</li>
    </ul>
    
    
  5. 然后,您可以运行您喜欢的jQuery滑块。如果您已经安装了jQuery Cycle Plugin,则可以非常轻松地在滑块上​​运行它。只需确保使用滑块将插件加载到页面上,然后在新创建的插件上运行它即可ul
    
    (function ($, Drupal, window, document, undefined) {
    
        $(document).ready(function() {
            $('#slider').cycle({
            // choose your options
        });
        });
    
    })(jQuery, Drupal, this, this.document);
    
    

而且您应该很好。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.