如何在RevealJS Quarto幻灯片中高亮表格指定值并实现淡入效果?
在RevealJS Quarto幻灯片的表格中实现特定值淡入高亮
要实现表格内特定值的淡入高亮,你可以结合kableExtra的单元格样式控制和自定义CSS动画,配合RevealJS的片段动画机制来完成,具体步骤如下:
1. 用kableExtra标记目标单元格
使用kableExtra包的cell_spec()函数,给需要高亮的单元格添加自定义类和RevealJS的fragment类(用于控制动画触发时机)。修改后的完整代码示例如下:
--- title: "Highlight elements on table" format: revealjs --- ## Slide I would like to fade-in a highlight (color) a piece of text. ```{css, echo=FALSE} @keyframes fade-in { from { background-color: transparent; } to { background-color: #fff3cd; } } .fade-target.fragment.current-fragment { animation: fade-in 0.8s ease-in-out forwards; }
library(knitr) library(kableExtra) # 提取iris前6行数据 iris_head <- head(iris) # 给Sepal.Width列中值为3.2的单元格添加样式类 iris_head$Sepal.Width <- cell_spec( iris_head$Sepal.Width, extra_css = ifelse(iris_head$Sepal.Width == 3.2, "class='fade-target fragment'", "") ) # 生成表格(escape=FALSE确保样式类被正确解析) kable(iris_head, escape = FALSE)
## 2. 自定义CSS动画逻辑 上面的CSS代码定义了一个`fade-in`动画,从透明过渡到浅黄色背景;同时通过`.fade-target.fragment.current-fragment`选择器,确保只有当该单元格进入当前演示片段时才触发动画,动画结束后保持高亮状态。 ## 效果说明 在幻灯片演示时,点击前进按钮,`Sepal.Width`列的3.2值会平滑淡入高亮背景,其他单元格不受影响。 内容的提问来源于stack exchange,提问作者Quinten
相关产品推荐
相关产品推荐

