Khi một trang HTML chứa bản đồ và người dùng cuộn trang xuống bằng con lăn chuột của họ, khi chuột của người dùng đi qua bản đồ, trang sẽ dừng cuộn trong khi bản đồ sẽ xoay. Xem bản trình diễn1 .
Tôi muốn mô phỏng hành vi chi tiết tại Thủ thuật sử dụng đơn giản cho Google Maps bằng API API của máy chủ ArcGIS 3.x.
Đó là, trang sẽ cuộn trừ khi người dùng kéo rõ ràng trong bản đồ, trong trường hợp đó bản đồ sẽ xoay .
Hành vi gần như có trong Demo2 , nơi trang cuộn ngay cả khi chuột của bạn ở trên bản đồ.
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();
});
});
Tuy nhiên, pan bản đồ không được bật trừ khi bạn nhấp lần đầu tiên vào bản đồ, nhả nút chuột và sau đó xoay. Có thể đạt được hiệu ứng liền mạch được hiển thị với Google Maps trong bài đăng trên blog không?
Tôi đã thử mouse-drag
, mouse-drag-start
và mouse-down
các sự kiện nhưng hành vi là như nhau cho tất cả các sự kiện.
enableMapNavigation
đến ngay sau khi phát lạimouse-drag-start
sự kiện. Tôi tìm thấy dojotoolkit.org/reference-guide/1.10/dojo/Evented.html như một lớp võ đường để phát ra các sự kiện. Vì vậy, bạn sẽ kéo (hoặc nhấp) trên bản đồ -> bật điều hướng bản đồ -> trong cùng chức năng gọi sự kiện kéo (có thể chỉ cần gọi hoặc có thể yêu cầu tham số) -> đi về việc kéo doanh nghiệp của bạn. Nó có thể nhặt con chuột xuống và kéo theo nó. Có thể chỉ là một kết hợp của việc thử các sự kiện đó theo các thứ tự khác nhau, v.v.