国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - js拖拉表格實現內容計算

js拖拉表格實現內容計算

2022-03-06 21:23莫兮是我 js教程

這篇文章主要為大家詳細介紹了js拖拉表格實現內容計算,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js拖拉表格實現內容計算的具體代碼,供大家參考,具體內容如下

前言

  • 制作網頁版Excel
  • H5新增功能:可拖拉-draggable, 可編輯-contenteditable

實現結果

js拖拉表格實現內容計算

代碼實現

index.html

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Table</title>
    <style>
        table, th, tr, td {
            margin: 0;
            padding: 0;
            width: 800px;
            text-align: center;
            border: solid 1px #000;
        }
 
        td {
            width: auto;
            background-color: pink;
        }
        .ops {
            cursor: move;
        }
    </style>
</head>
<body>
<table id="table">
    <thead id="thead">
    <tr id="header">
        <th>1</th>
    </tr>
    </thead>
    <tbody id="tbody">
 
    </tbody>
</table>
<script src="main.js"></script>
</body>
</html>

main.js

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
createTable(10,10);
init();
// 表格初始化
// @param1: rows, 行數
// @param2: cols, 列數
function createTable(rows, cols) {
    let header = document.getElementById('header'),
        body = document.getElementById('tbody');
 
    for (let i = 0; i < rows; i ++){
        let tmp = '',
            trEle = document.createElement('tr');
        for (let j = 0; j < cols; j ++){
            //thead
            if (i <= 1){
                tmp += `<th>${j}</th>`;
            }
            else {
                tmp += `<td class="ops" draggable="true">${i}</td>`;
            }
        }
        // console.log(tmp);
        if (i <= 1) header.innerHTML = tmp;
        else{
            trEle.innerHTML = tmp;
            body.appendChild(trEle);
        }
    }
}
 
/*
*   表格拖拽
* */
function init(){
    let x,y,data;
    document.body.addEventListener('click', event=>{
        event.preventDefault();
    });
 
    document.body.addEventListener('dragstart', event => {
        if (event.target.nodeName.toLowerCase() !== 'td'){
            alert('選擇正確的內容');
            return false;
        }
 
        // console.log(event);
        x = event.clientX - 5,
        y = event.clientY - 5,
        data = parseInt(event.target.firstChild.data);
        let img = new Image();
        img.src = 'test.png';
        event.dataTransfer.setDragImage(img, 0,0);
        // console.log(x, y, data);
    });
 
    //阻止默認處理
    document.body.addEventListener('dragover', event => {
        event.preventDefault();
    });
 
    document.body.addEventListener('drop', event => {
        let tmp = new dragCalculation(x,y,data);
        let endX = event.clientX - 5,
            endY = event.clientY - 5,
            endData = parseInt(event.target.firstChild.data);
        // console.log(event.target.firstChild.data);
        // console.log(isNaN(endData))
        if (isNaN(endData)) {
            alert('移動位置錯誤');
            return false;
        }
        // console.log(endX, endY, endData);
        let result = tmp.sum(endX, endY, endData);
        event.target.firstChild.data = result;
        event.target.style.backgroundColor = '#b4e318'
 
    });
}
 
let dragCalculation = function (x, y, data){
    this.startX = x;
    this.startY = y;
    this.startData = data;
};
 
dragCalculation.prototype.sum = function (x, y, data) {
    //應該詳細的邊界判斷
    if (this.startX == x ||
    this.startY == y ||
    isNaN(data))   {
        alert('不要放在原地不動');
        return false;
    }
 
//    取和
    return data + this.startData;
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/u013362192/article/details/115837290

延伸 · 閱讀

精彩推薦
  • js教程CocosCreator學習之模塊化腳本

    CocosCreator學習之模塊化腳本

    這篇文章主要介紹了Cocos Creator 模塊化腳本,想加深學習CocosCreator腳本的同學,一定要看一下...

    麥克煎蛋7432022-03-05
  • js教程剖析CocosCreator新資源管理系統

    剖析CocosCreator新資源管理系統

    這篇文章主要介紹了CocosCreator新資源管理系統,從v2.4開始,Creator使用AssetBundle完全重構了資源底層,提供了更加靈活強大的資源管理方式,也解決了之前版...

    深圳-寶爺6842022-03-03
  • js教程詳解CocosCreator項目結構機制

    詳解CocosCreator項目結構機制

    這篇文章主要介紹了詳解CocosCreator項目結構機制,只有了解這些機制后,才能更好的進行項目開發,避免潛在錯誤,并且快速的除錯...

    nfs king7072022-03-01
  • js教程js實現拖拽拼圖游戲

    js實現拖拽拼圖游戲

    這篇文章主要為大家詳細介紹了js實現拖拽拼圖游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    一個學前端的小菜鳥11662022-01-12
  • js教程JavaScript實現點擊切換驗證碼及校驗

    JavaScript實現點擊切換驗證碼及校驗

    這篇文章主要為大家詳細介紹了JavaScript實現點擊切換驗證碼及校驗,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    棟棟很優秀啊3842021-12-29
  • js教程ES5和ES6中類的區別總結

    ES5和ES6中類的區別總結

    這篇文章主要給大家介紹了ES5和ES6中類的區別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    Totora612302021-12-16
  • js教程JS中錨點鏈接點擊平滑滾動并自由調整到頂部位置

    JS中錨點鏈接點擊平滑滾動并自由調整到頂部位置

    這篇文章主要介紹了JS中錨點鏈接點擊平滑滾動并自由調整到頂部位置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的...

    是這樣的三月6702022-01-19
  • js教程聊聊JavaScript 命名約定優秀實踐

    聊聊JavaScript 命名約定優秀實踐

    在開發過程中,遵循標準的命名約定可以提高代碼的可讀性。下面就來看看 JavaScript 中命名約定的最佳實踐。...

    前端充電寶10072022-02-23
主站蜘蛛池模板: 久久一级 | av影音资源 | 精精国产xxxx视频在线观看 | 成人午夜精品 | 日韩高清一区二区 | 亚洲精品久久久久久久久久久久久 | 亚洲一区二区在线视频 | 久草电影网 | 午夜激情视频网站 | 亚洲91精品 | 午夜视频 | 亚洲精品wwww | 免费a网站 | 国产高清精品在线 | 一本久道视频一本久道 | 天堂资源库 | 在线中文字幕av | 国产精品一二区 | 免费观看黄视频 | a级在线| 中文在线视频 | 免费观看全黄做爰大片国产 | 欧美精品在线一区 | 成年人在线免费观看网站 | 国产日韩欧美一二三区 | 91精品国产综合久久福利 | 性激烈欧美三级在线播放狩猎 | 欧美在线观看视频一区二区 | 日本免费在线视频 | 国产一区二区三区免费播放 | 婷婷天堂| 激情视频网站 | 亚洲欧洲视频 | 天天夜操 | 日韩成人精品 | 久久久成人精品 | 91久色 | 久久午夜精品 | 亚洲国产二区 | 欧美日韩国产在线播放 | 99精品视频在线观看 |