ArcGIS Maps SDK for JavaScript:鼠标进入面要素时改变鼠标指针样式,离开时恢复

2024-07-19 1008阅读

文章目录

    • 1、关键代码
    • 2、完整示例

      在 ArcGIS Maps SDK for JavaScript 中,可以通过监听 pointer-move 事件来检测鼠标是否进入了面要素,并且通过设置 CSS 样式来改变鼠标指针的样式。

      ArcGIS Maps SDK for JavaScript:鼠标进入面要素时改变鼠标指针样式,离开时恢复
      (图片来源网络,侵删)

      1、关键代码

      // Listen for pointer-move event on the view
      view.on("pointer-move", function(event) {
         // Check if the pointer is over a feature
         view.hitTest(event).then(function(response) {
           if (response.results.length && response.results[0].graphic.layer === featureLayer) {
             // Change cursor style to pointer if over a feature
             view.container.style.cursor = "pointer";
           } else {
             // Reset cursor style to default if not over a feature
             view.container.style.cursor = "default";
           }
         });
       });
      

      2、完整示例

      以下是一个简单的示例代码,演示了如何实现这一功能:

      • 创建了一个基本的地图 (map) 和地图视图 (view)。
      • 加载了一个要素图层 (featureLayer),可以根据自己的需求替换为自己的图层。
      • 监听了 pointer-move 事件,当鼠标移动时进行 hitTest 来判断是否悬停在要素上。
      • 如果鼠标悬停在要素上,则将视图容器 (view.container) 的鼠标样式 (cursor) 设置为 "pointer",表示指针样式;如果不是,则将鼠标样式设置为 "default",表示默认样式。
        
        
          
          
          ArcGIS JavaScript Tutorials: Change Cursor on Hover
          
          
            html, body, #viewDiv {
              padding: 0;
              margin: 0;
              height: 100%;
              width: 100%;
            }
          
          
          
            require([
              "esri/Map",
              "esri/views/MapView",
              "esri/layers/FeatureLayer",
              "dojo/domReady!"
            ], function(Map, MapView, FeatureLayer) {
              // Create a map
              var map = new Map({
                basemap: "streets-navigation-vector"
              });
              // Create a MapView
              var view = new MapView({
                container: "viewDiv",
                map: map,
                center: [-118, 34],
                zoom: 8
              });
              // Create a feature layer
              var featureLayer = new FeatureLayer({
                url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/USA_Counties/FeatureServer/0"
              });
              // Add the feature layer to the map
              map.add(featureLayer);
              // Listen for pointer-move event on the view
              view.on("pointer-move", function(event) {
                // Check if the pointer is over a feature
                view.hitTest(event).then(function(response) {
                  if (response.results.length && response.results[0].graphic.layer === featureLayer) {
                    // Change cursor style to pointer if over a feature
                    view.container.style.cursor = "pointer";
                  } else {
                    // Reset cursor style to default if not over a feature
                    view.container.style.cursor = "default";
                  }
                });
              });
            });
          
        
        
          
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]