源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Maps Javascript

  • 时间:2020-11-02 11:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Maps Javascript
<html>   <head>      <title>Ajaxian Maps</title>   <style type="text/css">      h1{      font:20pt sans-serif;   }   #outerDiv{      height:600px;      width:800px;      border:1px solid black;      position:relative;      overflow:hidden;   }   #innerDiv{      position:relative;      left:0px;      top:0px;   }   #toggleZoomDiv{      position:absolute;      top:10px;      left:10px;      z-index:1      width:72px;      height:30px;   }   #togglePushPinDiv{      position:absolute;      top:10px;      left:87px;      z-index:1;      width:72px;      height:30px   }   </style>   <script language="javascript" src="resource/js/browserdetect_lite.js" type="text/javascript"></script>   <script language="javascript" src="resource/js/opacity.js" type="text/javascript"></script>   <script type="text/javascript" language="javascript">      //常数   var viewportWidth=800;   var viewportHeight=600;   var tileSize=100;   var zoom=0;   var zoomSizes=[["2000px","1400px"],["1500px","1050px"]];   //用来控制地图div的移动   var dragging=false;   var top;   var left;   var dragStartTop;   var dragStartLeft;      function init(){      //让inner div足够大,以正确显示出地图      setInnerDivSize(zoomSizes[zoom][0],zoomSizes[zoom][1]);      //为拖曳操作绑定鼠标监听器      var outerDiv=document.getElementById("outerDiv");      outerDiv.onmousedown=startMove;      outerDiv.onmousemove=processMove;      outerDiv.onmouseup=stopMove;      //在IE中支持拖曳所必须      outerDiv.ondragstart=function()      { return false;}      //解决在IE中触发器div的透明度问题      new OpacityObject('toggleZoomDiv','resource/images/zoom').setBackground();      new OpacityObject('togglePushPinDiv','resource/images/pushpin').setBackground();      checkTiles();   }   function startMove(event){   //针对IE必需      if(!event)event=window.event;      dragStartLeft=event.clientX;      dragStartTop=event.clientY;      var innerDiv=document.getElementById("innerDiv");      innerDiv.style.cursor="-moz-grab";      top=stripPx(innerDiv.style.top);      left=stripPx(innerDiv.style.left);      dragging=true;      return false;   }   function processMove(event){      if(!event)event=window.event; //for IE      var innerDiv=document.getElementById("innerDiv");      if(dragging){        innerDiv.style.top=parseFloat(top)+(event.clientY-dragStartTop);     innerDiv.style.left=parseFloat(left)+(event.clientX-dragStartLeft);      }      checkTiles();   }   function checkTiles(){      //检查在inner div中将显示哪个标题      var visibleTiles=getVisibleTiles();      //当把每个小地图快添加到inner div中时,要先检查其是否已经添加      var innerDiv=document.getElementById("innerDiv");      var visibleTilesMap={};      for (i=0;i<visibleTiles.length ;i++)      {         var tileArray=visibleTiles[i];      var tileName="x"+tileArray[0]+"y"+tileArray[1]+"z"+zoom;      visibleTilesMap[tileName]=true;      var img=document.getElementById(tileName);      if(!img){         img=document.createElement("img");      img.src="resource/tiles/"+tileName+".jpg";      img.style.position="absolute";      img.style.left=(tileArray[0]*tileSize)+"px";      img.style.top=(tileArray[1]*tileSize)+"px";      img.style.zIndex=0;      img.setAttribute("id",tileName);      innerDiv.appendChild(img);      }      }      var imgs=innerDiv.getElementByTagName("img");      for(i=0;i<imgs.length;i++){         var id=imgs[i].getAttribute("id");      if(!visibleTilesMap[id]){         innerDiv.removeChild(imgs[i]);      i--;//compensate for live nodeslist      }      }      }   function getVisibleTiles(){      var innerDiv=document.getElementById("innerDiv");      var mapX=stripPx(innerDiv.style.left);      var mapY=stripPx(innerDiv.style.top);      var startX=Math.abs(Math.floor(mapX/tileSize))-1;      var startY=Math.abs(Math.floor(mapY/tileSize))-1;      var tilesX=Math.ceil(viewportWidth/tileSize)+1;      var tilesY=Math.ceil(viewportHeight/tileSize)+1;      var visibleTileArray=[];      var counter=0;      for(x=startX;x<(tilesX+startX);x++){         for(y=startY;y<(tilesY+startY);y++){         visibleTileArray[counter++]=[x,y];      }      }            return visibleTileArray;   }   function stopMove(){      var innerDiv=document.getElementById("innerDiv");      innerDiv.style.cursor="";      dragging=false;   }   function stripPx(value){      if(value=="")return 0;      return parseFloat(value.substring(0,value.length-2));   }   function setInnerDivSize(width,height){      var innerDiv=document.getElementById("innerDiv");      innerDiv.style.width=width;      innerDiv.style.height=height;   }   function toggleZoom(){      zoom=(zoom==0)?1:0;      var innerDiv=document.getElementById("innerDiv");      var imgs=innerDiv.getElementsByTagName("img");      while(imgs.length>0)innerDiv.removeChild(imgs[0]);      setInnerDivSize(zoomSizes[zoom][0],zoomSizes[zoom][1]);      if(document.getElementById("pushPin"))togglePushPin();      checkTiles();   }   function togglePushPin(){      var pinImage=document.getElementById("pushPin");      if(pinImage){         pinImage.parentNode.removeChild(pinImage);      var dialog=document.getElementById("pinDialog");      dialog.parentNode.removeChild(dialog);      return;      }      var innerDiv=document.getElementById("innerDiv");      pinImage=document.createElement("div");      pinImage.style.position="absolute";      pinImage.style.left=(zoom==0)?"850px":"630px";      pinImage.style.top=(zoom==0)?"570px":"420px";      pinImage.style.width="37px";      pinImage.style.height="34px";      pinImage.zIndex=1;      pinImage.setAttribute("id","pushPin");      innerDiv.appendChild(pinImage);      new OpacityObject("pubshPin","resource/images/pin").setBackground();      var dialog=document.createElement("div");      dialog.style.position="absolute";      dialog.style.left=(stripPx(pinImage.style.left)-90)+"px";      dialog.style.top=(stripPx(pinImage.style.top)-210)+"px";      dialog.style.width="309px";      dialog.style.height="229px";      dialog.style.zIndex=2;      dialog.setAttribute("id","pinDialog");      dialog.innerHTML="<table height='80%' width='100%'>"+"<tr><td align='center'>The capital of Spain</td></tr></table>";      innerDiv.appendChild(dialog);      new OpacityObject('pinDialog','resource/images/dialog').setBackground();        }     </script>    </head>    <body onload="init()">        <p>        <h1>Ajaxian Maps</h1>     </p>     <div id="outerDiv">        <div id="toggleZoomDiv" onclick="toggleZoom()">     </div>     <div id="togglePushPinDiv" onclick="togglePushPin()">     </div>     <div id="innerDiv" style="z-index:0">             The rain in Spain falls mainly in the plains.     </div>     </div>    </body> </html>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部