0.4.4 • Published 5 years ago

react-mouse-handler v0.4.4

Weekly downloads
1
License
ISC
Repository
github
Last release
5 years ago

react-mouse-handler

React 鼠标事件处理组件,通过这个高阶组件封装后,子组件具备光标样式设置(cursor)、鼠标事件回调(onMouseOveronMouseMoveonMouseDownonMouseUponMouseOutonClickonDragStaronDragonDragEnd),在回调函数中可以拿到鼠标位置数据(localXlocalYglobalXglobalYdxdy

install

npm install react-mouse-handler --save-dev

demo

自定义组件:

// MyComponent.js

import React,{Component} from "react";
import mouseHandler from "react-mouse-handler";

class MyComponent extends Component{
  render() {
    return <p>{this.props.children}</p>;
  }
}
MyComponent = mouseHandler(MyComponent);	// 使用高阶组件封装 MyComponent
export default MyComponent;

index.js 中使用刚刚封装的 MyComponent

// index.js

import ReactDOM from "react-dom";
import React,{Component} from "react";

class App extends Component {
  render() {
    return (
      <div>
        <p>App</p>
        <MyComponent
          cursor="help"                     // 鼠标经过组件时,光标会变成 help 样式
          canDrag={true}                    // 鼠标拖拽(按下并离开)组件时,光标样式保持不变
          onMouseMove={(e, position) => {
            console.log(e);                 // 原生的事件参数
            console.log(position.localX);   // 相对于父容器的局部坐标x
            console.log(position.localY);   // 相对于父容器的局部坐标y
            console.log(position.globalX);  // 相对于document的全局坐标x
            console.log(position.globalY);  // 相对于document的全局坐标y
            console.log(position.dx);       // 水平方向的移动增量(只有在onMouseMove、onDrag时有意义)
            console.log(position.dy);       // 垂直方向的移动增量(只有在onMouseMove、onDrag时有意义)
          }}
          onMouseOver={(e, position) => {
            // do something
          }}
          onMouseDown={(e, position) => {
            // do something
          }}
          onMouseUp={(e, position) => {
            // do something
          }}
          onMouseOut={(e, position) => {
            // do something
          }}
        >help</MyComponent>
      </div>
    )
  }
}
ReactDOM.render(<App/>,document.getElementById('root'));

update

版本更新内容
0.4.4渲染规则:如果高阶组件传入children,就将原始组件的children覆盖。
0.4.31、接口变更为:mouseHandler(canDrag:boolean, cursor:string)(MyComponent) 2、提供MouseContainer组件。3、修复 bug。
0.4.2修复重绘组件的 bug。
0.4.1修复组件卸载后,鼠标样式未还原的 bug。
0.4.0修复 style 被覆盖的 bug。
0.3.01、新增 onClickonDragStartonDragonDrangEnd 回调。2、优化性能。
0.4.4

5 years ago

0.4.3

5 years ago

0.4.2

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago