滚动
在 Drupal 7 中创建幻灯片(slideshow)和 jQuery 轮播(carousel)。第 2 部分
在上一部分课程中,我们已经创建了一个幻灯片(slideshow)。我使用它来展示组织的员工,而您也可以将其用作网站的横幅(banner)。不过,这种默认的方案还不够理想——我希望为网站添加“上一张”和“下一张”的切换按钮。与普通的文本或数字分页器相比,这样的按钮看起来更加美观。
提醒一下,我们已经安装了 Views 和 Views_slideshow 模块。
接下来,我附上了几种箭头样式,我们将把它们放入我们的幻灯片中。首先,添加一个文本切换器(pager)。

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

按钮的设计思路如下:通过 CSS 为 “next” 和 “previous” 链接设置背景图(即箭头图像),然后再利用 CSS 将它们定位到页面合适的位置。
为了方便调试,我们需要一个 Firefox 插件 —— FireBug。它提供了查看和实时编辑 CSS 的工具。例如,下图展示了通过 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 微调 padding 和 position 的数值,并将最终版本保存到 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;
}

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