5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】チュートリアル機能の実装

Last updated at Posted at 2020-07-16

目標

ezgif.com-video-to-gif.gif

開発環境

・Ruby: 2.5.7
・Rails: 5.2.4
・Vagrant: 2.2.7
・VirtualBox: 6.1
・OS: macOS Catalina

前提

下記実装済み。

Slim導入
投稿機能実装

実装

1.Githubから必要ファイルをダウンロード

① 下記リンクへアクセスする。

intro.js Github

Codeをクリックする。

スクリーンショット 2020-07-16 10.21.02.png

③ URLをコピーする。

スクリーンショット 2020-07-16 10.21.07.png

④ リポジトリをクローンする。

ターミナル
$ git clone git@github.com:usablica/intro.js.git

⑤ クローンしたディレクトリ内のintro.jsintrojs.cssをアプリケーション内へ移動する。

スクリーンショット 2020-07-16 10.27.41.png

2.Gemを導入

Gemfile
# 追記
gem 'jquery-rails'
ターミナル
$ bundle

3.application.jsを編集

application.js
//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require jquery // 追記
//= require_tree .

3.JavaScriptファイルを作成・編集

ターミナル
touch app/assets/javascripts/tutorial.js
tutorial.js
$(function() {
  $('#tutorial').click(function() {
    introJs()
      .setOptions({
        nextLabel: '次 →',
        prevLabel: '← 前',
        skipLabel: 'スキップ',
        doneLabel: '終了',
        exitOnOverlayClick: false,
        showStepNumbers: false,

        steps: [
          {
            intro:
              '<b>Bookersへようこそ!</b><br>簡単にBookersの使い方をご紹介します!',
          },
          {
            element: '#introjs-step1',
            intro: 'タイトルを入力してください',
          },
          {
            element: '#introjs-step2',
            intro: '本文を入力してください',
          },
          {
            element: '#introjs-step3',
            intro: '「投稿」ボタンを押すと本を投稿することが出来ます',
          },
        ],
      })
      .start();
  });
});

【解説】

tutorialというIDを持ったボタンを押す事でチュートリアルが開始する。

$('#tutorial').click(function() {}

② チュートリアルの設定を行う為の関数を定義する。

.setOptions({})

③ メニューの設定を行う。

nextLabel: '次 →',
prevLabel: '← 前',
skipLabel: 'スキップ',
doneLabel: '終了',
exitOnOverlayClick: false,
showStepNumbers: false,

④ チュートリアルの設定を行う。

steps: []

⑤ 各モーダルの設定を行う。

elementを設定しない場合

{
  intro: 'チュートリアルです。',
}

画面中央に表示される。
スクリーンショット 2020-07-16 10.52.12.png

◎ elementを設定した場合

{
  element: '#introjs-step1',
  intro: 'タイトルを入力してください。',
}

設定したIDに対応するHTMLに焦点を当てて表示される。
スクリーンショット 2020-07-16 10.54.31.png

4.ビューを編集

① ボタンを設置する。

~html.slim
button id='tutorial'
  | チュートリアル開始

② IDを付与する。

~html.slim
= f.text_field :title, class:'form-control', id: 'introjs-step1'

他の動きで実装したい場合

① 下記リンクへアクセスする。

intro.js 公式ページ

② ページ下部へスクロールすると下記のような画面になるので、動きを見たい場合はDEMOをクリックし、実装する場合はSOURCEを押す事でサンプルコードを見ることが出来る。

スクリーンショット 2020-07-16 11.11.09.png

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?