地图中html元素的使用

在地图中,不管是工具栏、工具按钮还是弹出框,都是浮在地图上的一个个html元素,对此我们可以使用传统的html技术来控制这些元素。这里我总结了自己在地图中使用过的一些html技术。

使用js或jquery实现tab页签切换效果

1.新建html元素,先把tab结构写好,主要是由li组成的标题块和div组成的内容块:

<div id="popup" class="ol-popup">
        <div class="pophead">
            <div id="popup-title" class="popup-title">
            </div>
            <a href="#" id="popup-closer" class="ol-popup-closer"></a>
        </div>
        <div id="popup-content" class="popup-content">
            <ul id='pop-tags'>
                <li class='selected'><a href='javascript:void(0)' οnclick="selectPopTag('realtimeGauge',this)">
                    实时表盘</a></li>
                <li class=''><a href='javascript:void(0)' οnclick="selectPopTag('realtimedata',this)">
                    实时数据</a></li>
                <li class=''><a href='javascript:void(0)' οnclick="selectPopTag('realtimecurve',this)">
                    实时曲线</a></li>
            </ul>
            <div class='poptagsItem' id='realtimeGauge'>
                这是实时表盘页签</div>
            <div class='poptagsItem' id='realtimedata' style='display: none;'>
                这是实时数据页签</div>
            <div class='poptagsItem' id='realtimecurve' style='display: none;'>
                这是实时曲线页签
            </div>
        </div>
    </div>
2.定义元素的css样式:

	.ol-popup {
            background-color: #fff;
            box-shadow: 0 0px 4px rgba(0,0,0,0.4);
            border-radius: 0 0 5px 5px;
            min-width: 280px;
            width: 340px;
            height: 210px;
            font-size: 13px;
            font-family: Verdana, Tahoma, Arial, "Helvetica Neue" , Helvetica, Sans-Serif;
        }
        .ol-popup:after, .ol-popup:before {
            top: 100%;
            border: solid transparent;
            content: " ";
            height: 0;
            width: 0;
            position: absolute;
            pointer-events: none;
        }
        .ol-popup:after {
            border-top-color: #fff;
            border-width: 10px;
            left: 48px;
            margin-left: -10px;
        }
        .ol-popup:before {
            border-top-color: #888;
            border-width: 11px;
            left: 48px;
            margin-left: -11px;
        }
        .pophead{
            position: relative;
            width:100%;
            height:30px;
            background-color:rgb(0,153,187);
        }
        .popup-title{
            font:bold 15px sans-serif;
            color: #fff;
            margin-left: 10px;
            line-height: 30px;
        }
        .popup-content
        {
            height: 149px;
        }
        .ol-popup-closer {
            text-decoration: none;
            position: absolute;
            top: 3px;
            right: 5px;
            color:#fff !important;
            font-size: 16px;
        }
        .ol-popup-closer:after {
            content: "✖";
        }
        #pop-tags
        {
            list-style: none;
            PADDING-RIGHT: 0px;
            PADDING-LEFT: 0px;
            PADDING-BOTTOM: 0px;
            MARGIN: 0px 0px 0px 10px;
            WIDTH: 300px;
            PADDING-TOP: 2px;
            HEIGHT: 27px;
        }
        #pop-tags li
        {
            background: url(Content/Images/GIS/tagleft.gif) no-repeat left bottom;
            float: left;
            margin-right: 8px;
            list-style-type: none;
            height: 27px;
        }
        #pop-tags li.selected
        {
            BACKGROUND-POSITION: left top;
            MARGIN-TOP: 1px;
        }
        #pop-tags li.selected a {
            BACKGROUND-POSITION: right top;
            COLOR: #000;
            line-height: 30px;
        }
        .poptagsItem
        {
            height: 135px;
            border-top: 1px solid rgb(174, 203, 212);
            background-color: rgb(255, 255, 255);
        }
        #pop-tags li a {
            PADDING-RIGHT: 8px;
            PADDING-LEFT: 8px;
            BACKGROUND: url(Content/Images/GIS/tagright.gif) no-repeat right bottom;
            FLOAT: left;
            PADDING-BOTTOM: 0px;
            COLOR: #69f;
            LINE-HEIGHT: 33px;
            PADDING-TOP: 0px;
            HEIGHT: 27px;
            TEXT-DECORATION: none;
            margin-right:-3px;
        }
        #realtimedata input
        {
            width:34px;
            background-color: #ddd;
        }
附标签左右边框的图片:

tagleft.gif  :

tagright.gif  :


3.定义切换事件

js方法:

function selectPopTag(showContent, selfObj) {
        // 操作标签
        var tag = document.getElementById("pop-tags").getElementsByTagName("li");
        var taglength = tag.length;
        for (i = 0; i < taglength; i++) {
            tag[i].className = "";
        }
        selfObj.parentNode.className = "selected";

        document.getElementById("realtimeGauge").style.display = "none";
        document.getElementById("realtimedata").style.display = "none";
        document.getElementById("realtimecurve").style.display = "none";

        document.getElementById(showContent).style.display = "block";
    }

jquery方法:

function selectPopTag(showContent, selfObj) {
        $("#pop-tags li").removeClass("selected");
        $(selfObj).parent().addClass("selected");
        $(".poptagsItem").hide();
        $("#"+showContent).show();
    }
4.效果:
 
 

使用CSS和JS、JQUERY制作地图导航栏

这里主要用到:

a.事先定义好元素的类样式,通过使用js或jquery给元素动态添加类,来改变元素的样式;移除类,恢复元素的样式。

b.将导航栏中的按钮图片集成到一张png中,然后通过background-position属性来定位导航按钮图片的位置。

步骤:

1.创建html元素

<div class="tool-container">
        <div class="t_close"></div>
        <ul class="toolbarUl">
            <li id="toInitView"><span></span><i>初始视图</i></li>
            <b></b>
            <li id="tzoomin"><span></span><i>放大</i></li>
            <b></b>
            <li id="tzoomout"><span></span><i>缩小</i></li>
            <b></b>
            <li id="MeasureToolBt"><span></span><i>测量</i><em></em></li>
            <b></b>
            <li id="fullscreenBt"><span></span><i>全屏</i></li>
        </ul>
    </div>

2.创建元素的样式

 /*自定义工具条样式*/
    .tool-container{
        background-color:#fff;
        font-family: sans-serif;
        font-style:normal;
        height:40px;
        float:left;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        -o-border-radius: 5px;
        border-radius: 5px;
        box-shadow: 1px 2px 1px rgba(0,0,0,.15);
        border: 1px solid #eee;
    }
    .tool-container ul{
        margin:0;
        height:40px;
    }
    .tool-container ul li{
        float: left;
        list-style: none;
        margin-right: 10px;
        line-height: 40px;
        padding:0;
        cursor: pointer;
    }

    .tool-container ul li i{
        float: left;
        font-size: 12px;
        font-style: normal;
        height: 40px;
        line-height: 40px;
        display: inline-block;
    }
    /*定义菜单文字hover样式和active样式*/
    .tool-container ul li.active i {
        color: #579AFC;
    }
    .tool-container ul li:hover i{
        color: #aaa;
    }
    .tool-container ul li span{
        float:left;
        margin-right: 8px;
        margin-left: 8px;
        margin-top:13px;
        width:16px;
        height:16px;
        background-repeat: no-repeat;
    }
    /*隔离线样式*/
    .toolbarUl b{
        float: left;
        height: 21px;
        display: inline-block;
        border-right: 1px solid #ddd;
        top: 9px;
        position: relative;
    }
    /*下拉箭头样式*/
    .toolbarUl li em{
        width:7px;
        height: 7px;
        float: left;
        margin-top: 16px;
        margin-left: 5px;
        background-repeat: no-repeat;
        background-position: -13px -72px;
    }
    /*下拉箭头转为上拉*/
    .toolbarUl li.active em{
        background-position:-13px -96px !important;
    }
    /*定义菜单图片以及各按钮的图片位置*/
    .tool-container ul li span,.toolbarUl li em{
        background-image: url("Content/Images/GIS/toolbar.png");
    }
    .tool-container ul #toInitView span
    {
        background-position: -96px -4px;
    }
    .tool-container ul #MeasureToolBt span
    {
        background-position: -235px -4px;
    }
    .tool-container ul #fullscreenBt span
    {
        background-position: -12px -4px;
    }
    .tool-container ul #tzoomin span
    {
        background-position: -263px -5px;
    }
    .tool-container ul #tzoomout span
    {
        background-position: -292px -5px;
    }

    /*定义按钮图片的hover样式,以及点击后active类的样式*/
    .tool-container ul #toInitView span.active,.tool-container ul #toInitView:hover span
    {
        background-position: -96px -40px;
    }
    .tool-container ul #MeasureToolBt span.active,.tool-container ul #MeasureToolBt:hover span
    {
        background-position: -235px -40px;
    }
    .tool-container ul #fullscreenBt span.active,.tool-container ul #fullscreenBt:hover span
    {
        background-position: -40px -40px;
    }
    .tool-container ul #tzoomin span.active,.tool-container ul #tzoomin:hover span
    {
        background-position: -264px -40px;
    }
    .tool-container ul #tzoomout span.active,.tool-container ul #tzoomout:hover span
    {
        background-position: -293px -40px;
    }
3.为按钮绑定事件

 $(function() {
        $("#toInitView").click(function () {
            if ($("#toInitView").hasClass("active")) {
                $("#toInitView").removeClass("active");
            } else {
                $("#toInitView").addClass("active");
            }
        })
        $("#MeasureToolBt").click(function () {
            if ($("#MeasureToolBt").hasClass("active")) {
                $("#MeasureToolBt").removeClass("active");
            } else {
                $("#MeasureToolBt").addClass("active");
            }
        })
    })
附菜单栏按钮图片:toolbar.png


效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Echarts是一款基于HTML5 canvas的开源可视化库,可以用来生成各种类型的图表,包括地图。在HTML使用Echarts地图可以按照以下步骤进行: 1. 引入Echarts库:在HTML文档,需要先引入Echarts的相关文件。可以通过CDN或者本地文件方式引入,如: ``` <script src="https://cdn.jsdelivr.net/npm/echarts@5.1.2/dist/echarts.min.js"></script> ``` 2. 准备地图数据:Echarts地图需要地图数据进行展示,可以是JSON格式的地理数据,如GeoJSON或TopoJSON格式。可以在Echarts官网上获取到各种地图数据。 3. 创建一个容器:在HTML创建一个容器元素,用于放置地图图表,如一个div元素,可以通过id或class进行选择。例如: ``` <div id="chartContainer" style="width: 600px; height: 400px;"></div> ``` 4. 初始化图表对象:在JavaScript使用Echarts的API来创建一个图表对象,并指定图表容器的id或class,如: ``` var chartContainer = document.getElementById('chartContainer'); var chart = echarts.init(chartContainer); ``` 5. 配置地图参数:使用Echarts的配置项设置地图的属性,包括地图数据、样式、标注等。可以根据具体需求设置相应的参数,例如: ``` var option = { series: [{ type: 'map', map: 'china' }] }; ``` 6. 渲染图表:调用图表对象的setOption方法,将配置项传入,然后调用图表对象的渲染方法进行图表的绘制,如: ``` chart.setOption(option); ``` 通过以上步骤,就可以在HTML页面使用Echarts地图了。当然,根据实际需求,还可以对图表进行更多的配置和样式调整,包括添加标注、设置图表交互等。在Echarts官网上有丰富的文档和示例,可以参考以进一步了解和使用Echarts地图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

evomap

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值