修改 百度地图 infowindow 默认样式

1.百度 api 没有 提供可以修改 infowindow 默认样式的 方法。

如需修改,需要 自定义 替换 默认样式。

demo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="map"></div>
    <!-- 弹窗内容 -->
    <div id="cont">
        <div id="close"></div>
        <p id="title"></p>
        <table border='0' cellpadding='3' cellspacing='1' >
            <tr>
                <td>值班领导</td>
                <td>值班员</td>
                <td>当班执勤科队</td>
                <td>重要事项</td>
                <td>通道开通</td>
            </tr>
            <tr>
                <td>张站长</td>
                <td>王小二</td>
                <td>巡检科一队</td>
                <td>无</td>
                <td>自动12,人工4</td>
            </tr>
            <tr>
                <td>李站长</td>
                <td>张小四</td>
                <td>巡检科二队</td>
                <td>增加人工通道</td>
                <td>自动12,人工4</td>
            </tr>
        </table>
    </div>
</body>
<script>
    var map = new BMap.Map("map", {
        minZoom : 12,
        maxZoom : 18
    });
    
    var point = new BMap.Point(114.1262324342, 22.5390750268);// 创建点坐标
    map.centerAndZoom(point, 12);// 初始化地图,设置中心点坐标和地图级别。
    map.enableScrollWheelZoom(); // 启用滚轮放大缩小。
    map.enableKeyboard(); // 启用键盘操作。

    // 默认位置
    var ptlt = new BMap.Point(114.1622188176,22.5594612014);
    var myIconlt = new BMap.Icon("icon.png", new BMap.Size(71, 95),{
        anchor: new BMap.Size(-20, 10)
    });
    myIconlt.setImageSize(new BMap.Size(71, 95));
    var markerlt = new BMap.Marker(ptlt, { icon: myIconlt });  // 创建标注
    map.addOverlay(markerlt);    //增加点

    // 弹窗
    markerlt.addEventListener("mouseover", function () {
        $('#cont').css({'display':'','top': mouseYPosition + 'px','left': mouseXPosition + 'px'});
        setModal('莲塘边检站勤务实时信息');
    });

    markerlt.addEventListener("mouseout", function () {
        $('#cont').css({'display':'none'});
    });
    /*********************************************************************************/
    $('#cont').on('mouseover',function(){
        $('#cont').css({'display':''});
    })

    /*获取当前鼠标位置*/
    function mousePosition(ev){
        if(ev.pageX || ev.pageY){
            return {x:ev.pageX, y:ev.pageY};
        }
        return {
            x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
            y:ev.clientY + document.body.scrollTop - document.body.clientTop
        };
    }

    document.onmousemove = mouseMove;

    var mouseXPosition;
    var mouseYPosition;

    function mouseMove(ev){
        ev = ev || window.event;
        var mousePos = mousePosition(ev);
        mouseXPosition = mousePos.x - 230;
        mouseYPosition = mousePos.y - 170;
    }
    /*关闭弹出*/
    $('#close').on('click',function(){
        $('#cont').css({'display':'none'});
    });

    /*简单封装 设置title*/
    function setModal(title){
        $('#title').text(title);
    }
</script>
</html>

  

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
百度地图InfoWindow 是一个信息窗口,可以在地图上显示一些自定义的文本或 HTML 内容。通常,当用户点击地图上的标记时,会弹出一个 InfoWindow 来显示该标记的相关信息。 要在百度地图上创建 InfoWindow,可以使用 BMap.InfoWindow 类。该类提供了一些方法来设置 InfoWindow 的位置、内容和样式等属性。例如,可以使用 setContent() 方法来设置 InfoWindow 的内容,使用 setPosition() 方法来设置 InfoWindow 的位置,使用 setWidth() 和 setHeight() 方法来设置 InfoWindow 的宽度和高度等。 以下是一个简单的示例,演示如何在百度地图上创建和显示一个 InfoWindow: ```javascript // 创建地图实例 var map = new BMap.Map("map-container"); // 创建标记 var marker = new BMap.Marker(new BMap.Point(116.404, 39.915)); // 创建 InfoWindow var infoWindow = new BMap.InfoWindow("这是一个信息窗口"); // 绑定事件,点击标记时显示 InfoWindow marker.addEventListener("click", function() { map.openInfoWindow(infoWindow, marker.getPosition()); }); // 将标记添加到地图中 map.addOverlay(marker); ``` 在上面的示例中,我们创建了一个地图实例和一个标记,并将标记添加到地图中。然后,我们创建了一个 InfoWindow,并将其内容设置为 "这是一个信息窗口"。最后,我们绑定了标记的点击事件,当用户点击标记时,会在标记的位置上显示 InfoWindow。 当然,要使 InfoWindow 更加丰富和灵活,我们可以使用 HTML、CSS 和 JavaScript 来自定义 InfoWindow 的内容和样式
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值