【Javascript Demo】遮罩层和百度地图弹出层简单实现

其实想做的就是显示百度地图的弹出层,现在已经简单实现了。示例和代码如下,点击按钮可以看到效果:

1.示例:

 

 

 

 

 

2.代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
       <head>
               <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 
              <title>遮罩层和弹出层简单实现</title>
             
             <link href="css/css.css" rel="stylesheet" type="text/css" />
             <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.5&ak=A8773a52f6d9bc0ecaea7f15acdd13e0"></script>
              <script type="text/javascript">
              //显示百度地图弹出层
                  function divtoshow() {
                      div_show = document.getElementById("div_show");
                      div_show.innerHTML = "<div class=\"div_show_title\"> <span class=\"div_show_font\">地图</span> <input type=\"button\" value=\"关闭\" onclick=\"close_show();\" class=\"div_show_btn\" /> </div><div id=\"div_hotelmap\" ></div>";
                      getshade();
                      getpopup();
                      getbaidumap(116.404, 39.915);
                      div_show.style.zIndex = "100";
                      div_show.style.display = "block";
                  }

                  //创建遮罩层
                  function getshade() {
                      var div = document.createElement("div");
                      div.style.width = Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth) + "px";
                      div.style.height = Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + "px";
                      div.style.backgroundColor = "#000000";
                      div.style.position = "absolute";
                      div.style.opacity = 0.5;
                      div.style.left = 0;
                      div.style.top = 0;
                      div.id = "tohotelshade";
                      div.style.zIndex = 100;
                      document.getElementById("div_body").appendChild(div);
                  }

                  //创建用于显示百度地图的DIV
                  function getpopup() {
                      var div = document.createElement("div");
                      div.style.width = "100%";
                      div.style.height = "100%";
                      div.id = "tohotelmap";
                      document.getElementById("div_hotelmap").appendChild(div);
                  }

                  //清除弹出层和遮罩层
                  function close_show() {
                      var tohotelshade = document.getElementById("tohotelshade");
                      var tohotelmap = top.document.getElementById("tohotelmap");
                      var div_show = document.getElementById("div_show");
                      var div_hotelmap = document.getElementById("div_hotelmap");
                      div_show.style.zIndex = "-100";
                      tohotelshade.parentNode.removeChild(tohotelshade);
                      tohotelmap.parentNode.removeChild(tohotelmap);
                      div_show.innerHTML = "";
                  }

                  //通过经纬度显示百度地图
             function getbaidumap(Longitude,Latitude) {
              var map = new BMap.Map("tohotelmap");
              var point = new BMap.Point(Longitude,Latitude);
              map.centerAndZoom(point, 14);
              var marker = new BMap.Marker(point);        // 创建标注    
              map.addOverlay(marker);                     // 将标注添加到地图中  
             map.addControl(new BMap.NavigationControl());
             map.addControl(new BMap.ScaleControl());
             map.addControl(new BMap.OverviewMapControl());
             map.addControl(new BMap.MapTypeControl()); 
        }
            
</script>  
 
       </head>
 
       <body>
        
       <div id="div_body">
       <input type="button" value="click" onclick="divtoshow()" />
       </div>   

       <div id="div_show"> </div>
  </body>
</html>

 

3.样式:

#div_show
{
    height: 400px;
    left: 80px;
    position: fixed;
    top: 88px;
    width: 80%;
    z-index: -100;
}
.div_show_title
{
 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#12a3f4', endColorstr='#0e86c9', GradientType=0);
    clear: both;
    display: block;
    background: rgb(14, 134, 201);
    color: #FFFFFF;
    font-weight: 700;
    position: relative;
    height: 30px;
    width: 100%;
}
.div_show_font
{
    color: #FFFFFF;
    float: left;
    font-weight: 700;
    margin: 0.4em 0 0.4em 10px;
}
.div_show_btn
{
    float: right;
    margin: 0.4em 10px 0.4em 0;
}
#div_hotelmap
{
    height: 360px;
    border: 5px solid white;
}

 

posted @ 2013-07-02 10:51  叶超Luka  阅读(10372)  评论(0编辑  收藏  举报