概述:

今天给大家分享一个个人觉得比较好看的自己做的地图控件。


效果:


整体样式和鼠标经过


选中的控件以及对应的操作

实现的代码:

1、icon.css

.icon{
    display:inline-block;
    width:20px;
    height:20px;
    background:transparent url(sprite.png) no-repeat 0 0;
    text-indent:-9999px;
    overflow:hidden;
    margin: 7px;
}
.icon.zoomin{
    background-position:-40px 0;
}
.icon.zoomout{
    background-position:-60px 0;
}
.icon.geolocate{
    background-position:-80px 0;
}
.icon.layer{
    background-position:-100px 0;
}
.icon.legend{
    background-position:-120px 0;
}
.icon.share{
    background-position:-140px 0;
}
.icon.clipboard{
    background-position:-160px 0;
}
.icon.link{
    background-position:-180px 0;
}
.icon.close{
    background-position:-200px 0;
}
.icon.close:hover{
    cursor: pointer;
    background-position:-200px -20px;
}

2、style.css

html,body,ul,ol,li,form,fieldset,legend,h1,h2,h3,h4,h5,h6,p,input {
    border:0;
    margin:0;
    padding:0;
    background: #ddd;
    font:12px/20px "Microsoft YaHei";
    text-align: left;
}
.info-box{
    position: absolute;
    bottom: 0px;
    left: 0px;
    height:120px;
    display: none;
    width: 100%;
    background: #f2f2f2;
    border-top:solid rgba(0,0,0,0.6) 1px;
}
.info-box-content{
    padding: 5px 8px;
}
.info-box-close{
    position: absolute;
    top: 0px;
    right: 0px;
}
.map-control{
    margin-top: 8px;
    position:absolute;
    top: 20px;
    right: 30px;
    border-radius:4px;
}
.control-box{
    margin-top: 10px;
}
.control-button{
    display:block;
    height:35px;
    width:35px;
    background-color:rgba(0,0,0,0.6);
    outline:none;
}
.control-button:hover {
    background-color:#000;
}
.control-button.disabled {
    background-color:rgba(0,0,0,0.5);
    cursor:default;
}
.control-button.active {
    background-color:#9ed485;
}
.control-button.single{
    border-radius:4px;
}
.control-button.top{
    border-radius:4px 4px 0 0;
}
.control-button.center{
    border-radius:0;
}
.control-button.bottom{
    border-radius:0 0 4px 4px;
}
.entry{
    position: absolute;
    margin-left: 20px;
    margin-top:20px;
    width:30px;
    background:rgb(88,88,88);;
    padding:4px 6px;
    /*设置圆角*/
    -webkit-border-radius:5px;
    -moz-border-radius:5px;
    border-radius:5px;
    color: #ffffff;
    text-align: center;
}
/*右三角*/
.entry-trangle-right{
    position:absolute;
    top:6px;
    right:-5px;
    width:0;
    height:0;
    border-top:8px solid transparent;
    border-bottom:8px solid transparent;
    border-left:8px solid rgb(88,88,88);
}

3、page.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="css/style.css">
    <link rel="stylesheet" href="css/icon.css">
    <script src="jquery.min.js"></script>
    <script src="map.js"></script>
</head>
<body>
<div id="infoBox" class="info-box">
    <div id="infoContent" class="info-box-content"></div>
    <div id="infoClose"class="info-box-close">
        <span class="icon close"></span>
    </div>
</div>
<div class="map-control">
    <div class="control-box">
        <a class="control-button top" isclick="false" href="#" title="" data-original-title="放大">
            <span class="icon zoomin"></span>
        </a>
        <a class="control-button bottom" isclick="false" href="#" title="" data-original-title="缩小">
            <span class="icon zoomout"></span>
        </a>
    </div>
    <div class="control-box">
        <a class="control-button top" isclick="true" href="#" title="" data-original-title="图层">
            <span class="icon layer"></span>
        </a>
        <a class="control-button bottom" isclick="true" href="#" title="" data-original-title="图例">
            <span class="icon legend"></span>
        </a>
    </div>
</div>
</body>
</html>

4、page.js

$(function(){
    $(".control-button").on("mouseover",function(){
        $("#entry").remove();
        var top = $(this).offset().top;
        var entry = $("<div />").attr("id","entry").addClass("entry")
            .append($("<div />").addClass("entry-trangle-right"))
            .append($(this).attr("data-original-title"))
            .css("top",(top-40)+"px").css("right","40px")
            .appendTo($(".map-control"));
    });
    $(".control-button").on("mouseout",function() {
        $("#entry").remove();
    });
    $(".control-button").on("click",function(){
        if($(this).attr("isclick")==="true") {
            var cls = $(this).attr("class");
            if(cls.indexOf("active") > 0){
                $(this).removeClass("active");
                $("#infoBox").animate({height:"hide"},"slow",null,function(){
                    $("#infoContent").html("");
                });
            }
            else{
                $(".control-button").removeClass("active");
                $(this).addClass("active");
                var title = $(this).attr("data-original-title");
                $("#infoBox").animate({height:"show"},"slow",null,function(){
                    $("#infoContent").html("").append(title);
                });
            }
        }
    });
    $("#infoClose").on("click",function(){
        $(".control-button").removeClass("active");
        $("#infoBox").animate({height:"hide"},"slow",null,function(){
            $("#infoContent").html("");
        });
    })
});

源代码下载地址:http://download.csdn.net/detail/gisshixisheng/9008937



posted on 2015-08-15 15:57  LZU-GIS  阅读(199)  评论(0编辑  收藏  举报