Wenn eine HTML-Seite eine Karte enthält und der Benutzer mit dem Mausrad die Seite nach unten scrollt, hört die Seite auf zu scrollen, während die Karte selbst schwenkt, wenn die Maus des Benutzers über die Karte fährt. Siehe Demo1 .
Ich möchte das unter Ein einfacher Usability-Trick für Google Maps mit der ArcGIS Server JS API 3.x beschriebene Verhalten emulieren .
Das heißt, die Seite sollte einen Bildlauf durchführen, es sei denn, der Benutzer zieht explizit innerhalb der Karte. In diesem Fall sollte die Karte schwenken .
Das Verhalten ist in Demo2 fast vorhanden , wo die Seite auch dann gescrollt wird , wenn sich Ihre Maus über der Karte befindet.
map.on("load", function(){
// Disable navigation by default, so scrolling the page doesn't scroll the map
map.disableMapNavigation();
// When the user tries to pan the map, allow this
map.on('mouse-drag-start', function(){
map.enableMapNavigation();
});
// Restore the no-scroll behaviour when the mouse leaves the map
map.on('mouse-out', function(){
map.disableMapNavigation();
});
});
Das Schwenken der Karte ist jedoch nur aktiviert, wenn Sie zuerst einmal in die Karte klicken, die Maustaste loslassen und dann schwenken. Ist es möglich, den nahtlosen Effekt zu erzielen, der mit Google Maps im Blogbeitrag angezeigt wird?
Ich habe die und Ereignisse ausprobiert mouse-drag
, aber das Verhalten ist für alle Ereignisse gleich.mouse-drag-start
mouse-down
enableMapNavigation
sofort nach dem erneuten Aufrufen desmouse-drag-start
Ereignisses. Ich fand dojotoolkit.org/reference-guide/1.10/dojo/Evented.html als Dojo-Klasse, um Ereignisse auszugeben . Sie würden also auf die Karte ziehen (oder darauf klicken) -> die Kartennavigation aktivieren -> in derselben Funktion das Drag-Ereignis aufrufen (möglicherweise nur Parameter aufrufen oder Parameter benötigen) -> Ihr Unternehmen ziehen. Möglicherweise kann es mit der Maus nach unten greifen und mitziehen. Könnte nur eine Kombination aus dem Ausprobieren dieser Ereignisse in verschiedenen Reihenfolgen usw. sein