Gatsbyでクリック/タップした画像を拡大して表示する

3

目次

これです。

02

これなんて言うんですかね。画像のポップアップ?ズーム?WordPressだとFancyBoxって名称で言えば何となく伝わったのですが……。ちなみに今回紹介するプラグインはmedium-zoomというモジュールを使っているそうな。

プラグイン『gatsby-remark-images-zoom』をインストールするだけ

gatsby-remark-images-zoomをインストールするだけで簡単に実装できます。ちなみにgatsby-remark-imagesをインストールしてなければうまく動作しないので、gatsby-remark-imagesをインストールしてない場合は先にそちらをインストールする必要があります。

ターミナル
$ yarn add gatsby-remark-images
or
$ npm i --save gatsby-remark-images

gatsby-remark-images-zoomをインストールするためにはターミナルで以下を実行。

ターミナル
$ yarn add gatsby-remark-images-zoom
or
$ npm i --save gatsby-remark-images-zoom

そしてconfigファイルに追記するだけです。公式ドキュメントでもgatsby-remark-imagesの下に書かれていたので、大人しくgatsby-remark-imagesの下に書いておきましょう。

gatsby-config.js
plugins: [
  // 省略
  {
    resolve: `gatsby-remark-images`,
    options: {
      linkImagesToOriginal: false,
    },
  },
  `gatsby-remark-images-zoom`,  // 省略
],

ここでちょっとしたポイントなのですが、gatsby-remark-imagesはデフォで画像に別タブ(target="_blank")リンクがつき、その画像のオリジナルURLへと飛ぶことができます。ただ、この機能をgatsby-remark-images-zoomと併用すると、ユーザーが画像をクリックしたときにまず別タブが開き画像が拡大表示され、もとのページに戻ってきたときにも同じ画像が拡大表示されていると言うダメUXが完成します。

なので、

gatsby-config.js
{
  resolve: `gatsby-remark-images`,
  options: {
    linkImagesToOriginal: false,  },
},

これを忘れずに付け足しておきましょう。

gatsby-remark-imagesのオプションはこちらから確認できます。

gatsby-remark-images-zoomのオプション

デフォルトだとz-index42が設定されているので、場合によっては固定ヘッダーやらと被ってしまうなんてこともあるやも。オプションから変更可能です。

gatsby-config.js
plugins: [
  // 省略
  {
    resolve: `gatsby-remark-images`,
    options: {
      linkImagesToOriginal: false
    }
  },
  {
    resolve: `gatsby-remark-images-zoom`,
    options: {
      margin: 0,
      background: "fff",
      zIndex: 42,
      scrollOffset: 40,
      container: null,
      template: null
    }
  },
  // 省略
],

上は全てデフォルト値です。詳しくはこちら

  • SNSでシェアしよう
  • Twitterでシェア
  • FaceBookでシェア
  • Lineでシェア
  • 記事タイトルとURLをコピー
トップへ戻るボタン

\ HOME /

トップへ戻る