mirror of
https://gitee.com/antv/g6.git
synced 2024-12-02 03:38:20 +08:00
docs: add custom behavior to drag canvas with two fingers and wheel docs.
This commit is contained in:
parent
2dafd0dd32
commit
7b3d0d6f4d
@ -0,0 +1,59 @@
|
||||
import G6 from '@antv/g6';
|
||||
|
||||
/**
|
||||
* This demo shows how to custom a behavior to allow drag canvas with two fingers on touchpad and wheel
|
||||
* By Shiwu
|
||||
*/
|
||||
G6.registerBehavior('double-finger-drag-canvas', {
|
||||
getEvents: function getEvents() {
|
||||
return {
|
||||
wheel: 'onWheel'
|
||||
};
|
||||
},
|
||||
|
||||
onWheel: function onWheel(ev) {
|
||||
if (ev.ctrlKey) {
|
||||
const canvas = graph.get('canvas');
|
||||
const pixelRatio = canvas.get('pixelRatio');
|
||||
const point = canvas.getPointByClient(ev.clientX, ev.clientY);
|
||||
let ratio = graph.getZoom();
|
||||
if (ev.wheelDelta > 0) {
|
||||
ratio = ratio + ratio * 0.05;
|
||||
} else {
|
||||
ratio = ratio - ratio * 0.05;
|
||||
}
|
||||
graph.zoomTo(ratio, {
|
||||
x: point.x / pixelRatio,
|
||||
y: point.y / pixelRatio
|
||||
});
|
||||
} else {
|
||||
const x = ev.deltaX || ev.movementX;
|
||||
const y = ev.deltaY || ev.movementY;
|
||||
graph.translate(-x, -y);
|
||||
}
|
||||
ev.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
const width = document.getElementById('container').scrollWidth;
|
||||
const height = document.getElementById('container').scrollHeight || 500;
|
||||
const graph = new G6.Graph({
|
||||
container: 'container',
|
||||
width,
|
||||
height,
|
||||
modes: {
|
||||
default: ['double-finger-drag-canvas']
|
||||
},
|
||||
layout: {
|
||||
type: 'force'
|
||||
},
|
||||
});
|
||||
|
||||
fetch('https://gw.alipayobjects.com/os/antvdemo/assets/data/relations.json')
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
graph.data(data);
|
||||
graph.render();
|
||||
});
|
||||
|
16
examples/interaction/customBehavior/demo/meta.json
Normal file
16
examples/interaction/customBehavior/demo/meta.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"title": {
|
||||
"zh": "中文分类",
|
||||
"en": "Category"
|
||||
},
|
||||
"demos": [
|
||||
{
|
||||
"filename": "dragCanvasTwoFingers.js",
|
||||
"title": {
|
||||
"zh": "两指平移画布",
|
||||
"en": "Drag Canvas by Two fingers"
|
||||
},
|
||||
"screenshot": "https://gw.alipayobjects.com/mdn/rms_f8c6a0/afts/img/A*wc1-QaqOPsgAAAAAAAAAAABkARQnAQ"
|
||||
}
|
||||
]
|
||||
}
|
10
examples/interaction/customBehavior/index.en.md
Normal file
10
examples/interaction/customBehavior/index.en.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Custom Behavior
|
||||
order: 10
|
||||
---
|
||||
|
||||
Custom a behavior when the [built-in behaviors](/en/docs/manual/middle/states/defaultBehavior) do not meet your requirements.
|
||||
|
||||
## Usage
|
||||
|
||||
Custom a behavior with `graph.registerBehavior`, refer to [Custom Behavior Doc](en/docs/manual/advanced/custom-behavior).
|
10
examples/interaction/customBehavior/index.zh.md
Normal file
10
examples/interaction/customBehavior/index.zh.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
title: 自定义交互
|
||||
order: 10
|
||||
---
|
||||
|
||||
当[内置 behavior](/zh/docs/manual/middle/states/defaultBehavior)不能满足需求时,可以自定义交互。
|
||||
|
||||
## 使用指南
|
||||
|
||||
使用 `graph.registerBehavior` 自定义交互,教程参见 [自定义交互](zh/docs/manual/advanced/custom-behavior)。
|
Loading…
Reference in New Issue
Block a user