onRelayout does not work with scrollwheel zoom on 3d plots

Offen
#319 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
javascript, react

Rechercherichtung

Beginne mit der verknüpften CodeSandbox und reproduziere den Scrollrad-Zoom im 3D-Plot, während du die Konsolenausgabe von onRelayout beobachtest. Vergleiche die ausgegebenen Kamerawerte beim Hineinzoomen, Herauszoomen und beim Klicken vor dem Scrollen; abgeschlossen ist dies, wenn das Ereignis den endgültigen Kamerazustand widerspiegelt und nicht unerwartet leer ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

When using the scroll wheel to zoom, onRelayout seems to output the tiniest initial change rather than the layout at the end of the event (as using Zoom mode and clicking/dragging does), meaning the event better reflects the camera before the action rather than after, e.g:

  1. zooming in one 'click' of the scroll wheel will output with event.scene.camera.eye.x = 1.2499999999999998, only a tiny change from the default of 1.25
  2. zooming in again will output with event.scene.camera.eye.x = 0.94622499477157, a change of ~0.3 inwards
  3. then zooming out will output with event.scene.camera.eye.x = 0.7210090673130023, a change of ~0.2 inwards, representing another zoom in rather than out, when in theory we should be back to the position we were in after 1 zoom in

Also, if you click on the plot, then use the scroll wheel to zoom, the onRelayout event will often (but not always) be {}

Example (interact with plot as above and see console logs): https://codesandbox.io/s/compassionate-sara-hl4k9m

Vorherrschende Sprache
JavaScript
Sterne
1.1k
Forks
138
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus plotly/react-plotly.js

Alle Issues in plotly/react-plotly.js

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.