react鼠標框選組件


介紹

一個鼠標框選的react組件,支持單個單元點擊、移入移除等回調等,任意數量單元內容編輯,自定義設置類名等功能

npm傳送門

github傳送門

 

Gifs

 

 

 

 

Usage

 1 import Selection from 'react-box-selection'
 2  
 3 const content = [...Array(7)].map((item, row) => {
 4   return [...Array(14)].map((item, col) => {
 5     const data = Math.floor(Math.random() * 100 + 1)
 6     const tmp = <h3 key={`${row}-${col}`}>{data}</h3>
 7     return tmp
 8   })
 9 })
10  
11 class App extends React.Component {
12   state = {}
13  
14   componentWillUnmount () {
15     this.setState = () => { }
16   }
17  
18   mounted = all => { //all items(dom)
19     console.log(all)
20   }
21   selected = (positions, items, all) => { //data-position(array of string),selected items(array of dom)
22     console.log(positions)
23   }
24   singleSelected = (position, item, all) => { //data-position(string),selected items(dom)
25     console.log(position)
26   }
27   hovered = (position, item) => {
28     console.log(position)
29   }
30   leaved = (position, item) => {
31     console.log(position)
32   }
33  
34   render () {
35  
36     return (
37       <div>
38         <Selection
39           cols={24} 
40           rows={48} 
41           width={30} 
42           height={50} 
43           gap={10} 
44           wrapperScroll={undefined}
45           onMounted={this.mounted}
46           onHovered={this.hovered}
47           onLeaved={this.leaved}
48           onSelected={this.selected}
49           onSingleSelected={this.singleSelected}
50           itemClass='selection_item'
51           extraClass={['extra_1', 'extra_2']}
52           activeClass='selection_item_active'
53         >
54           {content}
55         </Selection>
56       </div>
57     )
58   }
59 }

 

params

參數名 默認值 是否必要 作用
cols 24 ×
rows 7 ×
height 50px × 單個單元高
width 30px × 單個單元寬
gap 0 × 單元間距
wrapperScroll body的scrollTop & scrollLeft × 指定的外層元素的scrollTop & scrollLeft
Children - × 自定義任意單元子節點 支持jsx組件
onMounted - × 掛載完成時的回調
onHovered - × 單個單元鼠標移入的回調
onLeaved - × 單個單元鼠標移出的回調
onSelected - × 框選多個單元的回調
onSingleSelected - × 單個點擊或框選單個單元的回調
itemClass selection_item ×
extraClass [] × 額外的類
activeClass selection_item_active × 激活狀態下的類


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM