Reactでstyleタグを作る
CSSで非表示にするだけ
DOMには書いておくと、スライドの後ろの方の
<img>
や
<video>
が
prefetchされる
準備
まず各行に段落構造(インデントの深さ)を見て、 section-番号
というcss class nameを付けておく
.line.section-番号
というCSSセレクタで行にスタイルを当てれるようになる
表示を切り替える
<style>
タグを更新する
.line:not(.section-番号)
現在表示するべきsection以外を対象にする疑似セレクタ
これに display: none;
を当てれば、消える
表示を切り替えるReactコンポーネント
<style>
を返せばいい
jsexport function PresentationCSS ({currentSection}) {
const css = `.line:not(.section-${currentSection}) { display: none; }`
return <style>{css}</style>
}
childrenには普通にCSSが書けちゃう
<PresentationCSS>
コンポーネントを使う
appから <PresentationCSS currentSection={3} />
と呼び出す
これで、3ページ目だけを表示するCSSが返ってくる
styleタグはHTMLのどこに書いても良い
Reactの中にstyleタグが書かれれば表示に反映される