前端js實(shí)現(xiàn)拖拽功能

Sortable.js中文網(wǎng) (sortablejs.com)
以react為例:
index.tsx

import { useEffect, useState } from 'react';
import Sortable from 'sortablejs';
import styles from './index.less';

export default () => {
  const [gridList, setGridList] = useState<any[]>([]);

  useEffect(() => {
    let el = document.getElementById('gridGroup');
    let sortable = Sortable.create(el, {
      // handle: '.handle',
      animation: 150,
      ghostClass: 'blue-background-class',
    });

    let arr: any[] = [];
    for (let i = 0; i < 100; i++) {
      arr.push({
        index: i,
        name: i,
      });
    }
    setGridList(arr);
  }, []);

  return (
    <>
      <div id="gridGroup" className={styles.gridGroup}>
        {gridList.map((item) => (
          <div
            key={item.index}
            className={`${styles.gridSquare} ${item.index === 1 ? 'handle' : ''}`}
          >
            {item.index}
          </div>
        ))}
      </div>
    </>
  );
};

index.less

.gridGroup {
  display: grid;
  grid-auto-flow: row dense;
  grid-gap: 2px;
  grid-template-rows: repeat(10, 1fr);
  grid-template-columns: repeat(10, 1fr);
  width: 100%;
  height: 100%;
  .gridSquare {
    border: 1px dashed #eee;
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容