Bir HTML sayfası bir harita içerdiğinde ve kullanıcı fare tekerleğini kullanarak sayfayı aşağı kaydırdığında, kullanıcının faresi harita üzerinden geçtiğinde, haritanın kendisi kaydırılırken sayfanın kaydırılması durur. Demo1'e bakınız .
ArcGIS Server JS API 3.x kullanarak Google Haritalar için basit bir kullanılabilirlik hilesi ile ayrıntılı olarak açıklanan davranışı taklit etmek istiyorum .
Olduğunu, sayfa kaydırma yapmalıdırlar kullanıcı açıkça bu durumda harita, içinde sürükler sürece haritası kaydırmak gerekir .
Davranış, fareniz haritanın üzerinde olsa bile sayfanın kaydırıldığı Demo2'de neredeyse oradadır .
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();
});
});
Ancak, haritayı ilk kez bir kez tıklamazsanız, fare düğmesini bırakmazsanız ve ardından kaydırmazsanız harita kaydırması etkinleştirilmez. Blog yayınında Google Haritalar ile gösterilen kesintisiz efekti elde etmek mümkün müdür?
Denedim mouse-drag
, mouse-drag-start
ve mouse-down
olaylar ancak davranış, tüm olaylar için aynıdır.
enableMapNavigation
yeniden başlattıktan hemen sonra ne zaman deneyebileceğinizi deneyebilirsinizmouse-drag-start
. Dojotoolkit.org/reference-guide/1.10/dojo/Evented.html olayları yayınlamak için bir dojo sınıfı olarak buldum . Böylece harita üzerinde sürükleyebilirsiniz (veya tıklayabilirsiniz) -> harita navigasyonunu etkinleştir -> aynı işlevde drag olayını çağırır (sadece çağırabilir veya parametreler gerektirebilir) -> iş sürüklemeye devam edebilirsiniz. Fareyi alıp sürükleyebilir. Bu olayları farklı düzenlerde denemenin bir kombinasyonu olabilir.