返回

Reveal.js 自定义“Upcoming”幻灯片备注以显示 URL 哈希部分

javascript

在 Reveal.js 中自定义“Upcoming”幻灯片备注

作为一名经验丰富的程序员和技术作家,我经常使用 Reveal.js 来创建引人入胜且信息丰富的幻灯片演示。一个有用的功能是“Speaker Notes”窗口,它可以在“Tall”布局中显示一个“Upcoming”幻灯片,方便演讲者跟踪演示进度。

然而,默认的“Upcoming”框只显示即将到来的幻灯片的数字索引。为了提高演示的互动性和信息量,我们希望修改该文本,使其包含 URL 的哈希部分,例如“#1”或“#/1/0/1”。这可以帮助演讲者快速查看即将到来的幻灯片的确切位置。

修改步骤

实现这一目标非常简单,只需几个步骤即可:

  1. 打开 reveal.js 配置文件: 找到并打开您幻灯片的 reveal.js 配置文件(通常命名为“reveal.js”)。

  2. 添加自定义 CSS:<head>标签中,添加以下 CSS 代码:

.speaker-notes-pane .upcoming .upcoming-slide-overlay {
  background: #000;
  color: #fff;
  font-size: 1.2rem;
  padding: 0.5rem;
  position: absolute;
  top: 0;
  right: 0;
}
.speaker-notes-pane .upcoming .upcoming-slide-overlay span {
  font-weight: bold;
}

此 CSS 代码创建了一个覆盖在“Upcoming”框上的黑色透明层,并为文本添加了白色、加粗的样式。

  1. 添加 JavaScript:<head>标签中添加以下 JavaScript 代码:
// 获取 upcoming slide overlay
var upcomingOverlay = document.querySelector('.upcoming .upcoming-slide-overlay');

// 获取当前幻灯片的哈希值
var hash = window.location.hash;

// 将哈希值添加到 overlay 文本中
upcomingOverlay.textContent = 'Upcoming: ' + hash;

此 JavaScript 代码动态地检索当前幻灯片的哈希值并将其添加到“Upcoming”框的文本中。

  1. 保存更改并刷新幻灯片: 保存配置文件并刷新幻灯片。现在,“Upcoming”框应该显示包含 URL 哈希部分的文本。

示例代码

以下是包含所有代码片段的示例 reveal.js 配置文件:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <link rel="stylesheet" href="reveal.css">
  <link rel="stylesheet" href="custom.css">
  <script src="reveal.js"></script>
  <script>
    // Get upcoming slide overlay
    var upcomingOverlay = document.querySelector('.upcoming .upcoming-slide-overlay');

    // Get current slide hash
    var hash = window.location.hash;

    // Add hash to overlay text
    upcomingOverlay.textContent = 'Upcoming: ' + hash;
  </script>
</head>
<body>
  <div class="reveal">
    <div class="slides">
      <section>
        <h1>Slide 1</h1>
      </section>
      <section>
        <h1>Slide 2</h1>
      </section>
    </div>
  </div>
</body>
</html>

常见问题解答

以下是修改 Reveal.js “Upcoming”幻灯片备注时的常见问题解答:

  1. 问:我无法在“Upcoming”框中看到哈希值,这是为什么?
    答:确保您已经正确添加了 CSS 和 JavaScript 代码,并且您的配置文件已保存并刷新。

  2. 问:我可以自定义“Upcoming”框中的文本样式吗?
    答:是的,您可以通过修改 CSS 代码来自定义字体大小、颜色和字体系列。

  3. 问:是否可以在“Upcoming”框中添加其他信息?
    答:是的,您可以通过修改 JavaScript 代码来添加幻灯片标题或其他相关信息。

  4. 问:我是否可以在没有“Tall”布局的情况下显示“Upcoming”框?
    答:是的,您可以通过修改 Reveal.js 的默认设置在其他布局中显示“Upcoming”框。

  5. 问:如何将此修改应用于我所有 Reveal.js 幻灯片?
    答:您可以创建一个包含 CSS 和 JavaScript 代码的自定义主题,并将其应用于所有幻灯片。

结论

通过遵循本文中的步骤,您可以轻松地修改 Reveal.js 的“Upcoming”幻灯片备注,使其包含 URL 的哈希部分。这可以极大地提高幻灯片演示的可导航性和交互性,帮助演讲者无缝地跟踪他们的进度。