今回はチュートリアル機能を実装できるIntro.jsをBlazorアプリケーションに導入していきたいと思います
Intro.js Doc
実装例は GitHubのexampleが参考になります
Intro.jsについては、いくつかの記事がありますので、そちらも参考にしてみてください
Webでデモ・チュートリアルを簡単に作れる intro.js の導入方法 (@RyutaKojima さん)
#使い方
Intro.jsの使い方は、HTML要素に対してdata-step
やdata-title
,data-intro
といったタグを埋め込みスクリプトintroJs().start()
を実行するだけで、要素に対してチュートリアルを作成してくれます。
例えば、**Demo**での最初のステップは、👇な感じです。
<h1 data-step='1' data-title="Welcome!" data-intro="こんにちは!一緒にBlazorの世界を楽しみましょう 👋">Hello, world!</h1>
<script>
window.InitJS = (_) => {
introJs().start();
}
</script>
data-step
で進める順番を作ってあげることで、コンポーネントをまたいで、シームレスにチュートリアルを進めることができます
**Demo**の場合だと、Index.razor
👉NavMenu.razor
👉MainLayout.razor
の順番に遷移しています。
#初回だけ表示させる工夫
チュートリアルを表示させたい要素を共通的なコンポーネントであるMainLayout.razor
やNavMenu.razor
などに埋め込む場合はレンダリングされる度にチュートリアルが表示されてしまうので、初回だけ表示させるなど少し工夫が必要になりますね
#動的な要素には表示できない
FetchData.razor
はHttpClient
で取得した情報をtable
に表示しますが、table
要素全体にチュートリアルを表示することができませんでした。introJs().start()
を実行するタイミングなのかもしれませんが、動的な要素に表示するには工夫がいるようです
#おわりに
Intro.jsを使ってBlazorアプリケーションにチュートリアルを表示する方法をご紹介しました。Intro.jsは商用利用でない場合、フリーで使用できますので興味のある方は試してみてください
今回もあまりBlazorには関係ない小ネタ感がありますが、何かのお役にたてれば幸いです