docs: add custom behavior to drag canvas with two fingers and wheel docs.

This commit is contained in:
Yanyan-Wang 2020-07-03 14:42:34 +08:00 committed by Yanyan Wang
parent 2dafd0dd32
commit 7b3d0d6f4d
4 changed files with 95 additions and 0 deletions

View File

@ -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();
});

View 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"
}
]
}

View 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).

View File

@ -0,0 +1,10 @@
---
title: 自定义交互
order: 10
---
当[内置 behavior](/zh/docs/manual/middle/states/defaultBehavior)不能满足需求时,可以自定义交互。
## 使用指南
使用 `graph.registerBehavior` 自定义交互,教程参见 [自定义交互](zh/docs/manual/advanced/custom-behavior)。