R标记:隐藏扰流板文本(将光标悬停在文本元素上)
是否可以在使用R标记创建的.html文件中隐藏文本块?文本元素应该隐藏,直到用户优先将鼠标悬停在文本上(或单击按钮)。要隐藏的元素与代码块无关。目前我将文本包含在 建议通过在每行前面加“>!”来隐藏文本块,但R Studio并不认可这种“降价”方法。它只返回一个以“!”开头的文本块。不过,我更喜欢这种简单的“悬停”方法,而不是Javascript和按钮R标记:隐藏扰流板文本(将光标悬停在文本元素上),r,r-markdown,knitr,R,R Markdown,Knitr,是否可以在使用R标记创建的.html文件中隐藏文本块?文本元素应该隐藏,直到用户优先将鼠标悬停在文本上(或单击按钮)。要隐藏的元素与代码块无关。目前我将文本包含在 建议通过在每行前面加“>!”来隐藏文本块,但R Studio并不认可这种“降价”方法。它只返回一个以“!”开头的文本块。不过,我更喜欢这种简单的“悬停”方法,而不是Javascript和按钮 欢迎提出任何建议。谢谢。这当然是可能的。有几种可能性,包括线性变换(动画淡入)、按钮、无按钮等等 首先,这里是一个使用CSS的简单方法。不悬停时
欢迎提出任何建议。谢谢。这当然是可能的。有几种可能性,包括线性变换(动画淡入)、按钮、无按钮等等 首先,这里是一个使用CSS的简单方法。不悬停时,字体和背景颜色匹配,因此没有可见的文本。悬停时,背景变为白色,文本变为黑色
---
title: "Hide Code Blocks"
author: "Martin Schmelzer"
date: "June 25, 2018"
output: html_document
---
<style>
hide {
background-color: #d6d6d6;
color: #d6d6d6;
}
hide:hover {
background-color: white;
color: black;
}
</style>
## R Markdown
<hide>This is a hidden text block!</hide>
---
标题:“隐藏代码块”
作者:“马丁·施梅尔泽”
日期:“2018年6月25日”
输出:html\u文档
---
隐藏{
背景色:#D6;
颜色:#D6;
}
隐藏:悬停{
背景色:白色;
颜色:黑色;
}
##降价
这是一个隐藏的文本块!
我的建议是使用CSS完成此任务
以下Rmd
文件包含一些隐藏spoiler
类元素的规则。您可以使用CSS找到其他方法:
---
output: html_document
---
```{css, echo=FALSE}
.spoiler {
visibility: hidden;
}
.spoiler::before {
visibility: visible;
content: "Spoiler alert! Hover me to see the answer."
}
.spoiler:hover {
visibility: visible;
}
.spoiler:hover::before {
display: none;
}
```
You can insert a message in raw `HTML`:
<p class="spoiler">Answer</p>
A better approach is to use bracketed spans:
[This is another answer]{.spoiler}
---
输出:html\u文档
---
```{css,echo=FALSE}
.扰流板{
可见性:隐藏;
}
.扰流板::之前{
能见度:可见;
内容:“剧透警报!让我悬停查看答案。”
}
.扰流板:悬停{
能见度:可见;
}
.扰流板:悬停::之前{
显示:无;
}
```
您可以在原始“HTML”中插入消息:
答案
更好的方法是使用括号跨度:
[这是另一个答案]{.spoiler}
基于关于想要显示一个kable
'd表的附加部分,我查看了htmltools
包中用于创建HTML元素的一些函数。我提出的方法通过js
代码块使用最少的Javascript
基本上,我使用shinny::actionButton
创建了一个按钮,并通过向onclick
属性提供函数名来附加一个Javascript点击处理程序。knit表位于HTML
包装器中,因此它将在
元素中作为容器正确呈现。此容器的初始值设置为true
单击处理程序是唯一要编写的真正Javascript,它是一个按ID查找
的函数,并将其隐藏的属性设置为false
RMarkdown:
---
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
```{r}
library(htmltools)
shiny::actionButton("show_table_button",
label = "Show table",
onclick = "button_handler()")
div(id = "tableContainer",
hidden = "true",
HTML(knitr::kable(head(iris), format = "html")))
```
```{js}
function button_handler() {
document.getElementById('tableContainer').hidden = false;
}
```
这就产生了:
单击按钮后:
请注意,还有其他一些用于在R中编写更复杂Javascript代码的软件包,我没有使用任何推荐的软件包,但我尝试将这些软件包限制在使用任何与闪亮的/HTML小部件相关的软件包中。同样值得一提的是:,这可以消除输入中对原始HTML的需要。如果您不想再看到它,有没有办法添加一个“隐藏表格”按钮来隐藏它?老实说,我会尝试使用预构建的HTML小部件库,而不是在R中编写javascript,但是您可以切换document.getElementById('tableContainer')).在单击处理程序中隐藏