logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

在 Drupal 7 中创建幻灯片(slideshow)和 jQuery 轮播(carousel)。第 2 部分

14/10/2025, by Ivan

在上一部分课程中,我们已经创建了一个幻灯片(slideshow)。我使用它来展示组织的员工,而您也可以将其用作网站的横幅(banner)。不过,这种默认的方案还不够理想——我希望为网站添加“上一张”和“下一张”的切换按钮。与普通的文本或数字分页器相比,这样的按钮看起来更加美观。

提醒一下,我们已经安装了 ViewsViews_slideshow 模块。

接下来,我附上了几种箭头样式,我们将把它们放入我们的幻灯片中。首先,添加一个文本切换器(pager)。

Drupal views

现在,幻灯片切换器应显示“下一张(Next)”和“上一张(Previous)”两个按钮。

Drupal views display

按钮的设计思路如下:通过 CSS 为 “next” 和 “previous” 链接设置背景图(即箭头图像),然后再利用 CSS 将它们定位到页面合适的位置。

为了方便调试,我们需要一个 Firefox 插件 —— FireBug。它提供了查看和实时编辑 CSS 的工具。例如,下图展示了通过 FireBug 看到的切换按钮块结构:

FireBug

我们需要记录元素的 id,因为稍后会通过这些 id 来编写 CSS。还需要将箭头图标文件复制到您主题的 images 文件夹中。

将箭头图标复制到主题的 images 文件夹后,打开主题的 style.css 文件,并添加如下样式:

a#views_slideshow_singleframe_prev_view_slideshow-block_1 {
    background: url('images/left.png'); /* 左箭头图片 */
    width: 30px; /* 箭头宽度 */
    height: 0px; /* 高度设为 0 */
    padding-top: 30px; /* 与宽度相同的间距 */
    position: relative; /* 相对定位 */
    top: 0px; /* 距顶部的偏移 */
    overflow: hidden;
    z-index: 5; /* 位于幻灯片之上 */
    display: block; /* 以块状显示 */
}

其中 a 表示链接标签,# 表示按 id 选择器匹配相应元素。

右箭头(next)的样式略有不同:

a#views_slideshow_singleframe_next_view_slideshow-block_1 {
    background: url('images/right.png');
    width: 30px;
    height: 0px;
    padding-top: 30px;
    position: relative;
    top: 0px;
    left: 30px;
    overflow: hidden;
    z-index: 5;
    display: block;
}

我们还可以完全隐藏“暂停(pause)”按钮:

a#views_slideshow_singleframe_playpause_view_slideshow-block_1 {
    display: none;
}

通过 FireBug 微调 paddingposition 的数值,并将最终版本保存到 style.css 中。以下是我最终使用的 CSS:

#views_slideshow_singleframe_prev_view_slideshow-block_1 {
    background: url('images/left.png');
    width: 35px;
    height: 0px;
    padding-top: 26px;
    position: relative;
    top: -55px;
    overflow: hidden;
    z-index: 5;
    display: block;
}
#views_slideshow_singleframe_next_view_slideshow-block_1 {
    background: url('images/right.png');
    width: 35px;
    height: 0px;
    padding-top: 26px;
    position: relative;
    top: 0px;
    left: 0px;
    overflow: hidden;
    z-index: 5;
    display: block;
}
a#views_slideshow_singleframe_playpause_view_slideshow-block_1 {
    display: none;
}
#views_slideshow_singleframe_controls_view_slideshow-block_1 {
    height: 0px;
}

Drupal views slideshow

大功告成!横幅幻灯片已经准备好了。在下一部分中,我们将创建一个 jQuery 轮播(carousel)