shape interaction with drag and click
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 18.3k
- Forks
- 2k
- Ø Merge
- 2 T. 12 Std.
- Gemergte PRs (30 T.)
- 28
Beschreibung
This is a follow-up on https://github.com/plotly/plotly.js/issues/4512
I was trying to figure out if I could make individual shapes clickable/interactable and draggable.
Use cases
- when I click on a shape I'd like its color to change
- when I drag a shape I'd like it to only drag horizontally
- when adding a shape I'd like to make certain shapes draggable/clickable and others not
As such I tried the following
<head>
<!-- Load plotly.js into the DOM -->
<script src='https://cdn.plot.ly/plotly-latest.min.js'></script>
</head>
<body>
<div id='myDiv'><!-- Plotly chart will be drawn inside this DIV --></div>
</body>
var trace1 = {
x: [0, 1, 2, 3, 4, 5, 6, 7, 8],
y: [0, 1, 3, 2, 4, 3, 4, 6, 5],
type: 'scatter'
};
var trace2 = {
x: [0, 1, 2, 3, 4, 5, 6, 7, 8],
y: [0, 4, 5, 1, 2, 2, 3, 4, 2],
type: 'scatter'
};
var data = [trace1, trace2];
var shapes = [
{
type: "line",
x0: 2,
y0: 0,
x1: 2,
y1: 1,
yref: "paper",
line: {color: "RoyalBlue", width:3},
editable: true
},
{
type: "line",
x0: 3,
y0: 0,
x1: 3,
y1: 1,
yref: "paper",
line: {color: "Red", width:3},
editable: false
}
];
var layout = {
shapes: shapes
};
var config = {
edits: {
shapePosition: true
}
};
Plotly.newPlot('myDiv', data, layout, config);
var myPlot = document.getElementById('myDiv');

- I can now drag both the red and blue line albeit I set
editable=truefor the first one andeditable=falsefor the second one. - When setting
edits>shapePosition=falsethen I cannot drag any shape even ifeditable=truefor the blue is set.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit der Durchsicht des verknüpften Issues #4512 und reproduzieren Sie das Beispiel mit Plotly.newPlot, dem shapes-Array, der editable-Einstellung jeder Shape und config.edits.shapePosition. Die Arbeit ist abgeschlossen, wenn einzelne Shapes selektiv anklickbar und ziehbar sein können, einschließlich der angeforderten Interaktionsbeschränkungen, ohne das Verhalten nicht editierbarer Shapes zu ändern.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript
- Bereich
- data-visualization
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100