zoukankan      html  css  js  c++  java
  • 应用ArcGIS Server JavaScript API实现地图卷帘效果实现

    var maskDynamicMapServiceLayer = null;
    var maskDynamicMapServiceLayerDiv = null;
    var pointNumb = 0;
    var alignType = "";
    var mapMouseDownEvent= null;
    var mapMouseMoveEvent = null;
    var mapMouseUpEvent = null;
    var mapDiv = null;
    function initOverlayerContrast(layer)
    {
        maskDynamicMapServiceLayer = layer;
        maskDynamicMapServiceLayerDiv = document.getElementById("map_" + maskDynamicMapServiceLayer.id);
        mapDiv = document.getElementById("map");
        mapDiv.onmousedown = startDragSwipe;    
        map.disablePan();
    }
    
    function destroyOverlayerContrast()
    {
        mapDiv.onmousedown = null;
        mapDiv = null;
        maskDynamicMapServiceLayer = null;
        maskDynamicMapServiceLayerDiv = null;
        map.enablePan();
    }
    
    function startDragSwipe(e) {
        pointNumb = 1;
        var eventObj = window.event || e;
        var x = eventObj.clientX;
        var y = eventObj.clientY;
        maskDynamicMapServiceLayerDiv = document.getElementById("map_" + maskDynamicMapServiceLayer.id);
        mapDiv.onmousemove = moveDragSwipe;
        mapDiv.onmouseup = stopDragSwipe;
        //
        var leftOffset = x;
        var topOffset = y;
        var rightOffset = document.body.clientWidth - x;
        var bottomOffset = document.body.clientHeight - y;
        var minOffset = 0;
        if (leftOffset < rightOffset) {
            minOffset = leftOffset;
            alignType = "left";
        } else {
            minOffset = rightOffset;
            alignType = "right";
        }
        if (topOffset < minOffset) {
            minOffset = topOffset;
            alignType = "top";
        }
        if (bottomOffset < minOffset) {
            minOffset = bottomOffset;
            alignType = "bottom";
        }
        //
        var clip = "rect(auto, auto, auto," + x + "px)";
        if (alignType == "right") {
            clip = "rect(auto, " + x + "px, auto, auto)";
        } else if (alignType == "top") {
            clip = "rect(" + y + "px, auto, auto, auto)";
        } else if (alignType == "bottom") {
            clip = "rect(auto, auto, " + y + "px, auto)";
        }
        maskDynamicMapServiceLayerDiv.style.clip = clip;
    }
    
    function moveDragSwipe(e) {
        var eventObj = window.event || e;
        var x = eventObj.clientX;
        var y = eventObj.clientY;
        //
        if (maskDynamicMapServiceLayerDiv && pointNumb == 1) {        
            var clip = "rect(auto, auto, auto," + x + "px)";
            if (alignType == "right") {
                clip = "rect(auto, " + x + "px, auto, auto)";
            } else if (alignType == "top") {
                clip = "rect(" + y + "px, auto, auto, auto)";
            } else if (alignType == "bottom") {
                clip = "rect(auto, auto, " + y + "px, auto)";
            }
            maskDynamicMapServiceLayerDiv.style.clip = clip;
        }
    }
    
    //
    function stopDragSwipe(evt) {
        if (maskDynamicMapServiceLayerDiv)
        {
            maskDynamicMapServiceLayerDiv.style.clip = "rect(auto, auto, auto, auto)";
        }
        pointNumb = 0;
        mapDiv.onmousemove = null;
        mapDiv.onmouseup = null;
    }
  • 相关阅读:
    leetcode-13. Roman to Integer
    leetcode-171. Excel Sheet Column Number
    学生信息管理系统案例小结
    Kafka 生产者、消费者与分区的关系
    json.dumps()包装中文字符串
    Spring-JDBC
    JDBC 连接池
    JDBC
    Python DBUtils 连接池对象 (PooledDB)
    Java Junit单元测试
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/5779438.html
Copyright © 2011-2022 走看看