ブラウザ上で画像を並べてTier表を作成する無料Webツールの作り方を紹介する記事のアイキャッチイメージ。

開発ガイド

【コピペで完成】ドラッグ&ドロップでTier表作成!ブラウザ完結Webツールの作り方

画像をドラッグ&ドロップで並べ替えて、自分だけの「Tier表(ランク表)」を作れたら便利だと思いませんか?
本記事では、HTMLとJavaScriptだけで作れる「ブラウザ完結型のTier表作成ツール」の作り方をご紹介します。

このツールは次のような特徴があります。

  • インストール不要、ブラウザだけで動作
  • 画像をアップロード→並べ替え→PNGとして保存が可能
  • ドラッグ&ドロップ対応(Sortable.js利用)で直感的に操作できる
  • 画像はサーバーに送信しないため、安全に利用可能

完成版のコードはコピペで動作するので、初心者の方でも安心して試せます。
さらに、コードを読み解けば、Sortable.jsを使ったドラッグ&ドロップの基本も学べるので、学習素材としても最適です。

今回作るツールの概要

今回作成するのは、画像をTier(ランク)ごとに分類して並べ替えられるWebツールです。
Tier表とは、例えばゲームキャラクターやアイテムをランク付けして一覧化する際に使われる表のこと。
SNSやブログ、動画コンテンツなどでも人気の形式です。

作成するツールは次のような機能を持ちます。

  • 画像のアップロード(PNG / JPEG対応、最大2MB・最大辺2000pxまで)
  • ドラッグ&ドロップで自由に並べ替え
  • 不要な画像の削除
  • Tier表を1枚のPNG画像として書き出し

動作イメージ

  1. 画像をドラッグ&ドロップまたは「ファイルを選択」から読み込みます
  2. 作成したTier行に画像を配置
  3. 順番を変えたり、Tier間で移動させたりします
  4. 完成したら「PNG書き出し」ボタンで保存

【実際のTier表作成ツールの動作を試してみたい方はこちらからどうぞ】▼

Tier表はゲームのキャラクターランキングだけじゃなく、日常の分類や整理にも応用できるんですよ!

ほーく
ほーく

必要な準備

今回のTier表作成ツールは、HTML・CSS・JavaScript の3つのファイルで構成します。
さらに、ドラッグ&ドロップによる並び替えを簡単に実装するために Sortable.js というライブラリを使用します。
このライブラリを使うことで、複雑な処理を一から書かずに、短時間で安定した動作のドラッグ&ドロップ機能を作ることができます。

必要なもの

  1. パソコンとブラウザ
    作成や動作確認はローカル環境(自分のPC)で行います。
  2. テキストエディタ
    Visual Studio Code など、メモ帳でもOKです。
  3. Sortable.js のCDNリンク
    以下のようにHTMLファイルから読み込みます。

ポイント
ライブラリは自分でダウンロードして使うこともできますが、今回は手軽な CDN(インターネット経由で読み込む方法) を使います。
インストール不要なので、HTMLファイルを作ってブラウザで開くだけで動作します。

コード全体(コピペOK版)

以下のコードをすべてコピーし、お使いのPCで新しいテキストファイルに貼り付けてください。

実行手順

  1. 上記コードをすべてコピーします。
  2. お使いのPCで、新しいテキストファイルを作成します。
  3. コピーしたコードをテキストファイルに貼り付け、tier_maker.htmlという名前で保存します。
  4. 保存したファイルを、Google ChromeやSafariなどのブラウザで開きます。

これで、ブラウザ上にTier表作成ツールが表示され、すぐに使い始めることができます。

ポイント解説

  • HTMLとJavaScriptの一体化:
    HTML、CSS、JavaScriptをすべて1つのファイルにまとめています。
  • 外部ライブラリの利用:
    ドラッグ&ドロップ機能には「Sortable.js」を、PNG書き出し機能には「html2canvas」を使用しています。これらのライブラリはCDN(Content Delivery Network)から読み込んでいるため、別途ダウンロードする必要はありません。
  • makeThumbDataURL関数:
    ファイルを読み込む際に、元の画像サイズに関わらず、表示用の小さなサムネイル(90x90px)を作成しています。これにより、メモリの使用量を抑え、動作を軽くしています。
  • initDnD関数:
    Sortable.create()という命令で、どの要素をドラッグ&ドロップ可能にするかを設定しています。

コピペで動くコードの中身を理解しよう

ここでは、先ほど紹介した完成コードがどのように動いているのかを、HTML・CSS・JavaScript の3つのパートに分けて解説します。
コードの仕組みを理解すれば、あとから自分好みにカスタマイズするのも簡単になります。

1. HTML部分:ツールの土台となる構造

HTMLは、ウェブページの骨組みを作るための言語です。
今回のコードでは、以下のような要素が主要なパーツになっています。

  • <input type="file">
    「ファイルを選択」ボタンを押してPCの画像を読み込むための要素です。
    class="hidden" として非表示にし、JavaScriptから操作できるようにしています。
  • <div id="pool">
    画像をTier表に配置する前に置いておく「未配置プール」エリアです。
  • <div id="tiers">
    Tier表全体を囲むコンテナです。この中に複数のTier行(S、A、B…)が入ります。
  • <div class="tier">
    Tier表の1行(例:Sランク)を表します。
    data-id という属性で、行ごとに識別IDを設定しています。
  • <div class="tier-row">
    Tier行の右側にある、画像を配置する領域です。
    この部分がドラッグ&ドロップ可能になります。
  • <button id="exportPng">
    完成したTier表をPNG画像としてダウンロードするためのボタンです。

2. CSS部分:見た目を整えるスタイル

CSSは、HTMLで作った骨組みにデザインや装飾を加えるための言語です。

  • body
    ページ全体の背景色やフォントを設定します。
  • .card, .wrap
    コンテンツを中央に配置し、背景や影をつけて見やすくします。
  • .pool, .tier-row
    画像を横に並べるため、display: flex; を設定しています。
  • .thumb
    サムネイル画像のサイズや角丸を設定しています。
  • .tier
    Tier行のレイアウトをdisplay: grid;で定義し、左側のラベルと右側の画像エリアを2列に分けます。
  • .sortable-ghost
    ドラッグ中の画像が半透明になるよう、Sortable.jsが自動で付与するクラスにスタイルを指定しています。

3. JavaScript部分:ツールを動かす命令

JavaScriptは、ユーザーの操作に応じて動作を変えるための言語です。
このコードでは、主に次の3つの機能を実装しています。

(1) 画像のアップロード機能

  • makeThumbDataURL関数
    読み込んだ画像を表示用の小さなサムネイル画像に変換します。
  • createThumbElement関数
    サムネイル画像をHTML要素に変換し、未配置プールに追加します。

これにより、PCから読み込んだ画像が「未配置プール」に並びます。

(2) ドラッグ&ドロップ機能(Sortable.js)

  • initDnD関数内でSortable.create()を使って、未配置プールと各Tier行をドラッグ&ドロップ可能にします。
  • group: 'tiers' という設定により、異なるエリア間で画像を移動できます。

(3) PNG出力処理

  • exportPngBtn(PNG書き出しボタン)が押されると、html2canvasというライブラリで<div id="board">の内容を画像化します。
  • 生成した画像データを tierlist.png という名前でダウンロードします。
  • ダウンロード時は未配置プールを一時的に非表示にし、Tier表部分だけを画像化します。

さらにカスタマイズしてみよう!

基本のコードを理解したら、次は自分好みにカスタマイズしてみましょう。ここでは、簡単にできるカスタマイズ例をいくつかご紹介します。

Tier行のラベルや色を変更する

HTMLの<body>内にある<div id="tiers">の中を編集することで、Tierのラベルや初期の色を変更できます。

変更後(例:S+、A+にする場合):

background-colorに好みの色コードを設定し、<div>内の文字を自由に編集してみてください。

画像のサムネイルサイズを変える

JavaScript部分のTHUMB_SIZEという定数を変更することで、サムネイルの大きさを調整できます。

変更後(例:サムネイルを大きくする場合):

この値を変更すると、サムネイルの見た目と、画像を処理する際のサイズの両方が変わります。

ドラッグ&ドロップのアニメーション速度を変える

JavaScriptのinitDnD関数にあるSortable.create()内のanimationの値を変更すると、画像をドラッグしたときのアニメーション速度が変わります。

変更後(例:より速くする場合):

おすすめの学習リソース|ドラッグ&ドロップやWebツール制作をもっと学びたい方へ

今回紹介したTier表作成ツールは、HTML・CSS・JavaScript と、外部ライブラリ(Sortable.js・html2canvas)を組み合わせて作成しました。
この仕組みを理解し応用できるようになると、TODOリストや画像ギャラリー、カードゲーム風UI など、さまざまなWebアプリが作れるようになります。

ここでは、さらに学習を進めたい方におすすめのリソースをご紹介します。

書籍で体系的に学ぶ

『確かな力が身につくJavaScript超入門』(SBクリエイティブ)

JavaScriptを基礎から丁寧に学べる定番入門書。
実践的なサンプルも豊富で、今回のような小さなWebアプリが自作できるようになります。
「何から始めればいいか分からない」方の最初の一冊に最適です。

『スラスラわかるHTML&CSSのきほん』(SBクリエイティブ)

Web制作初心者におすすめのHTML/CSS入門書。
タグやスタイルの基本から、レイアウト・装飾の実践テクニックまでやさしく解説。
「見た目をもっとキレイにしたい」方にピッタリです。

SBクリエイティブ/狩野祐東

おすすめのオンライン講座

Udemy|世界最大級のオンライン学習プラットフォーム

世界中で利用されるオンライン学習サイト。
HTML、CSS、JavaScriptの入門から応用まで、高評価の講座が数百種類揃っています。
初心者でも動画を見ながら手を動かせるので、挫折しにくいのが魅力です。

まとめ

今回は、ドラッグ&ドロップでTier表を作れるブラウザ完結型Webツール の作り方をご紹介しました。
HTML・CSS・JavaScriptの基本に加え、Sortable.js を使うことで、直感的な画像並べ替え機能を実装できました。
さらに html2canvas を利用して、完成したTier表をそのままPNG画像として保存する仕組みも実現しました。

今回のポイントをおさらいすると…

  • HTML でツールの骨組みを作る
  • CSS で見やすくデザインを整える
  • JavaScript + Sortable.js でドラッグ&ドロップ機能を実装
  • html2canvas でTier表を画像として出力

この仕組みを理解すれば、Tier表だけでなく、タスク管理アプリ・カード型UI・並び替えクイズ など、応用できる場面はたくさんあります。

あとはあなたのアイデア次第!ぜひ今回のサンプルをベースに、オリジナルのWebツール制作に挑戦してみてください。

今回のコードをコピーして動かすだけでも勉強になりますが、コードを少しずつ改造していくと、もっと楽しくなりますよ!

ほーく
ほーく

関連記事

【実際のTier表作成ツールの動作を試してみたい方はこちらからどうぞ】▼

-開発ガイド
-, , , , ,