html - R&Knitr html输出: Create collapsing and expanding header

标签 html css r knitr

用例

我使用 R 和 Knitr很多生成长 html 报告。报告使用 markdown # 语法包含标题。这些标题为读者的导航提供了良好的方向...

问题

...但是报告有时会变得很长。从头到尾滚动需要很长时间。报告的读者在到达相关部分之前看到所有报告内容会感到恼火。

问题

有没有办法在 Knitr 中实现折叠和展开的标题元素? Example

要求

  • 默认情况下,标题会被折叠。只有点击标题下方的内容才会展开。这将极大地有助于使报告在外观上保持小巧,并有助于轻松快速地导航。
  • 为了向读者提供状态反馈,标题应代表其状态。我根据 Wikipedia 中使用的机制推荐一些东西(见上图)。

最佳答案

您可以使用 Javascript 使元素折叠。 jQuery JavaScript 框架通过 hideshow 方法使这相当容易。

在包含您的 Rmd 模板的文件夹中,创建一个名为 script 的子文件夹并保存 jQuery file在里面。 (不必在那里,但这是一个合理的标准位置。)

将此代码添加到 Rmd 文件的顶部附近。

<script type="text/javascript" language="javascript" src="script/jquery-1.10.2.min.js">
</script>

对于 Markdown,结束标签需要是 on a separate line .

或者,如果您的报告主要是在可以访问互联网的机器上阅读,您可以 should使用 Google 托管的 jQuery 版本。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" >
</script>

然后为折叠逻辑添加另一个脚本 block 。确切的实现取决于您;那里are lots of examples在互联网上。

使折叠/展开逻辑简单的关键是确保您正在操作的元素具有一致的类(或它们的 id 的模式)。

关于html - R&Knitr html输出: Create collapsing and expanding header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20699178/

相关文章:

javascript - jQuery:如何获取标题的动态高度

r - 无法渲染动画

r - 防止 ggplot2 自动排序 x 轴

html - 使用 CSS 背景样式 <li> 元素,仅显示部分图像

r - 如何在 R 中的二进制 h2o GBM 中获得每个类的不同变量重要性?

html - 使用 Flexbox 在 Angular 落对齐元素

javascript - NodeJS 护照 Facebook OAuth

php - 如何在网站上画矩形突出显示?

jquery - 父 div 背景之前的 css div 图像

html - chrome 的浏览器兼容性问题