js ドラッグ アンド ドロップ テーブルでコンテンツ計算を実現する

js ドラッグ アンド ドロップ テーブルでコンテンツ計算を実現する

この記事の例では、コンテンツの計算を実現するためのjsドラッグアンドドロップテーブルの具体的なコードを共有しています。具体的な内容は次のとおりです。

序文

  • ExcelのWebバージョンを作成する
  • H5 の新機能:ドラッグ可能コンテンツ編集可能

成果を達成する

コードの実装

インデックス.html

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>テーブル</title>
    <スタイル>
        テーブル、th、tr、td {
            マージン: 0;
            パディング: 0;
            幅: 800ピクセル;
            テキスト配置: 中央;
            境界線: 実線 1px #000;
        }

        td {
            幅: 自動;
            背景色: ピンク;
        }
        .ops {
            カーソル: 移動;
        }
    </スタイル>
</head>
<本文>
<テーブルid="テーブル">
    <ヘッドid="ヘッド">
    <tr id="ヘッダー">
        <th>1</th>
    </tr>
    </thead>
    <tbody id="tbody">

    </tbody>
</テーブル>
<script src="main.js"></script>
</本文>
</html>

メイン.js

テーブルを作成します(10,10);
初期化();
// テーブルの初期化 // @param1: rows, 行数 // @param2: cols, 列数 function createTable(rows, cols) {
    ヘッダーを document.getElementById('header') とします。
        本文 = document.getElementById('tbody');

    (i = 0; i < 行; i++) の場合 {
        tmp = ''とします
            trEle = document.createElement('tr');
        (j = 0; j < cols; j ++) の場合 {
            //頭
            (i <= 1)の場合{
                tmp += `<th>${j}</th>`;
            }
            それ以外 {
                tmp += `<td class="ops" draggable="true">${i}</td>`;
            }
        }
        // コンソールログ(tmp);
        i <= 1の場合、header.innerHTML = tmp;
        それ以外{
            trEle.innerHTML = tmp;
            body.appendChild(trEle);
        }
    }
}

/*
* テーブルドラッグ * */
関数init(){
    x、y、データを入力します。
    document.body.addEventListener('クリック', イベント=>{
        イベントをデフォルトにしない();
    });

    document.body.addEventListener('dragstart', イベント => {
        if (event.target.nodeName.toLowerCase() !== 'td'){
            alert('正しいコンテンツを選択してください');
            false を返します。
        }

        // コンソール.log(イベント);
        x = イベント.クライアントX - 5,
        y = イベント.クライアントY - 5,
        データ = parseInt(event.target.firstChild.data);
        img = new Image();
        'test.png' をアップロードしてください。
        イベントデータ転送時にドラッグイメージを設定する(img, 0,0);
        // console.log(x, y, データ);
    });

    //デフォルトの処理を防ぐ document.body.addEventListener('dragover', event => {
        イベントをデフォルトにしない();
    });

    document.body.addEventListener('ドロップ', イベント => {
        tmp = new dragCalculation(x,y,data); とします。
        endX = event.clientX - 5 とします。
            終了Y = イベント.クライアントY - 5、
            endData = parseInt(event.target.firstChild.data);
        // コンソールにイベントをログ出力します。
        // コンソール.log(isNaN(endData))
        if (isNaN(endData)) {
            alert('移動位置エラー');
            false を返します。
        }
        // console.log(endX, endY, endData);
        結果を tmp.sum(endX, endY, endData) とします。
        イベントターゲットの最初の子データ = 結果;
        イベントターゲットスタイルの背景色 = '#b4e318'

    });
}

dragCalculation = function (x, y, データ) とします。
    this.startX = x;
    開始Y = y;
    this.startData = データ;
};

dragCalculation.prototype.sum = 関数 (x, y, データ) {
    // 詳細な境界判定を行う必要がある if (this.startX == x ||
    this.startY == y ||
    isNaN(データ)) {
        alert('そこに放置しないでください');
        false を返します。
    }

// データを取得して返す + this.startData;
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • js 正確なカウントダウン機能の共有
  • ID番号を確認するための超正確なJavaScriptメソッド
  • jsはシンプルな計算機を実装します
  • Apple 電卓の JS 実装
  • JavaScript シミュレーション計算機
  • シンプルな計算機機能を実現するJavaScript
  • JavaScript でテキストの行数を計算する方法
  • JavaScript の典型的なケースのシンプルな計算機
  • js 正確な計算

<<:  MySQLバッチは特定のフィールドのスペースを削除します

>>:  bash スクリプトで ssh/scp コマンドにパスワードを渡す方法の詳細な説明

推薦する

Linux システムで TCP 接続を作成するプロセスの紹介

目次LinuxでTCPを作成する手順サーバクライアントTCP確立プロセスサンプルコードLinuxでT...

JS デコレータ パターンと TypeScript デコレータ

目次デコレータパターンの紹介TypeScript のデコレータデコレータの使用デコレーターファクトリ...

CSSスプライトの応用の詳細な説明

CSS Sprite は、CSS スプライトとも呼ばれ、画像結合技術です。この方法は、複数の小さなア...

mysql5.7でbinlogを使用してデータを復元する方法

ステップ1: MySQLでbinlogが有効になっていることを確認する '%log_bin%...

163 メールボックスログインボックスインタラクティブデザインの改善体験と共有

LOFTER のコンテストで、ログイン ボックスを再設計できると言及されているのを見ました。過去 2...

html2canvas を使用して HTML コードを画像に変換する方法

コードを画像に変換するにはhtml2canvas は、ブラウザから Web ページのスクリーンショッ...

Vue+Element UIはドロップダウンメニューのカプセル化を実現します

この記事の例では、ドロップダウンメニューのカプセル化を実装するためのVue + Element UI...

VMware+centOS 8 で http プロトコルに基づく Git サービスを構築する方法

目次1. 原因2. デバイス情報3. 準備4. Apacheをインストールする5. gitを設定する...

Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

問題の説明:最近、rsyncで毎回同期するデータ量が多いが、データベースのbakファイルを保持する必...

電子署名を実装するWeChatミニプログラム

この記事では、WeChatミニプログラムで電子署名を実装するための具体的なコードを参考までに紹介しま...

Dockerは複数のポートマッピングコマンドを有効にします

次のように: docker run -d -p 5000:23 -p 5001:22 --name ...

HTML+CSS+JavaScript でガールフレンド版のスクラッチ カードを作成します (一度見ればすぐに覚えられます)

誰もがスクラッチ チケットで遊んだことがあると思います。子供の頃、ポケットにお金が入るとすぐに友達に...

VMwareがwin10ホームバージョンに64ビットオペレーティングシステムをインストールできない問題を解決します

問題の説明VMware Workstationが新しい仮想マシンを作成し、64ビットオペレーティング...

Vue の高度な構築プロパティの詳細な説明

目次1. ディレクティブカスタムディレクティブ2. ミックスイン3. 継承を拡張する4. 提供して注...