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;
    }
  • 相关阅读:
    hibernate框架学习之增删改查helloworld
    hibernate学习笔记第七天:二级缓存和session管理
    hibernate框架学习第六天:QBC、分页查询、投影、数据加载策略、二级缓存
    hibernate框架学习第五天:数据查询、投影等
    hibernate框架学习第四天:关联关系、外键、级联等
    hibernate框架学习第三天:对象状态、一级缓存、快照等
    词链—动态规划
    智力大冲浪-贪心
    高精度开方数
    高精度最小公倍数
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/5779438.html
Copyright © 2011-2022 走看看