在百度地图上实现鼠标滑过marker时打开自定义的信息窗口,当鼠标滑出marker时关闭已打开的信息窗口。

首先,需要在地图上添加一个marker,具体如下所示:

$.ajax({async:false,cache:true,url: "获取位置信息的接口",type: 'GET',success: function(result){if(result != undefined && result.length >0){map.centerAndZoom(new BMap.Point(result[0].longitude, result[0].latitude));var longitude = [], latitude = [];for (var i = 0; i < result.length; i++) {longitude[i] = result[i].longitude;latitude[i] = result[i].latitude;var steelMarker = new BMap.Marker(new BMap.Point(longitude[i],latitude[i]), {title:"钢材"}, {icon:new BMap.Icon("myCar.png", new BMap.Size(25, 20))});map.addOverlay(steelMarker);  //将标注添加到地图中}}},error:function(e){//alert("获取信息失败");}
});

添加marker以后,就可以实现鼠标滑过marker时打开自定义信息窗口的事件了。

百度地图的marker有一个addEventListener()事件,具体为:addEventListener(event: String, handler: Function),即给marker添加事件监听函数。marker添加的监听事件包括:

事件 参数 描述
click event{type, target} 点击标注图标后会触发此事件
dblclick event{type, target, point,pixel} 双击标注图标后会触发此事件
mousedown event{type, target, point,pixel} 鼠标在标注图上按下触发此事件
mouseup event{type, target, point,pixel} 鼠标在标注图上释放触发此事件
mouseout event{type, target, point,pixel} 鼠标离开标注时触发此事件
mouseover event{type, target, point,pixel} 当鼠标进入标注图标区域时会触发此事件
remove event{type, target} 移除标注时触发
infowindowclose event{type, target} 信息窗在此标注上关闭时触发此事件
infowindowopen event{type, target} 信息窗在此标注上打开时触发此事件
dragstart event{type, target} 开始拖拽标注时触发此事件
dragging event{type, target, pixel, point} 拖拽标注过程中触发此事件
dragend event{type, target, pixel, point} 拖拽结束时触发此事件
rightclick event{type, target} 右键点击标注时触发此事件

将addEventListener(event: String, handler: Function)中的event写为“mouseover”,即可为marker添加一个鼠标滑过事件;然后使handler实现打开自定义窗口信息的功能,具体是利用marker的openInfoWindow()方法,即openInfoWindow(infoWnd: InfoWindow)。在调用openInfoWindow()方法之前,应首先定义一个百度地图的信息窗口即InfoWindow,创建信息窗口的函数为:InfoWindow(content: String | HTMLElement, opts: InfoWindowOptions),其中,content即为所创建信息窗口的内容;而opts是此信息窗口的可选参数,这些参数包括:width、height、maxWidth、offset、title、enableAutoPan、enableCloseOnClick、enableMessage、message等。

① 创建百度地图信息窗口:

var steelContent = '<div><p style="margin:0;line-height:1.5;font-size:13px;text-indent:2em"><br/>经度:'+longitude[i]+'<br/>纬度:'+latitude[i]+
'<br/><a style="float:right;margin:10px" href="/ILTS/orderDetail/orderDetail.html?id='+goodsId+'&goodsStatus='+goodsStatus+'">物资详情</a></p></div>';
var steelOpts = {width : 260,     //信息窗口宽度height: 200,     //信息窗口高度title : "<b>车辆信息</b>" , //信息窗口标题enableMessage:true    //设置允许信息窗发送短息
};
new BMap.InfoWindow(steelContent, steelOpts);

② 利用openInfoWindow打开创建好的信息窗口:

steelMarker.openInfoWindow(new BMap.InfoWindow(steelContent, steelOpts));

③ 通过addEventListener将上面的打开信息窗口添加为steelMarker的鼠标滑过事件mouseover即可:

steelMarker.addEventListener("mouseover",function () {this.openInfoWindow(new BMap.InfoWindow(steelContent, steelOpts));}
);

④ 利用closeInfoWindow关闭信息窗口:

steelMarker.closeInfoWindow();

⑤  通过 addEventListener将上面的关闭信息窗口添加为steelMarker的鼠标移开事件mouseout即可:

steelMarker.addEventListener("mouseout",function () {this.closeInfoWindow();}
);

这样就实现了鼠标滑过时打开自定义信息窗口,鼠标移开时关闭自定义信息窗口的功能。总结如下:

$.ajax({async:false,cache:true,url: "获取位置信息的接口",type: 'GET',success: function(result){if(result != undefined && result.length >0){map.centerAndZoom(new BMap.Point(result[0].longitude, result[0].latitude));var longitude = [], latitude = [];for (var i = 0; i < result.length; i++) {longitude[i] = result[i].longitude;latitude[i] = result[i].latitude;var steelMarker = new BMap.Marker(new BMap.Point(longitude[i],latitude[i]), {title:"钢材"}, {icon:new BMap.Icon("myCar.png", new BMap.Size(25, 20))});//var steelContent = '<div><p style="margin:0;line-height:1.5;font-size:13px;text-indent:2em"><br/>经度:'+longitude[i]+'<br/>纬度:'+latitude[i]+'<br/><a style="float:right;margin:10px" href="/ILTS/orderDetail/orderDetail.html?id='+goodsId+'&goodsStatus='+goodsStatus+'">物资详情</a></p></div>';var steelOpts = {width : 260,     //信息窗口宽度height: 200,     //信息窗口高度title : "<b>车辆信息</b>" , //信息窗口标题enableMessage:true  //设置允许信息窗发送短息};map.addOverlay(steelMarker); //将标注添加到地图中//添加鼠标滑过时打开自定义信息窗口事件steelMarker.addEventListener("mouseover",function () {this.openInfoWindow(new BMap.InfoWindow(steelContent, steelOpts));});//添加鼠标离开时关闭自定义信息窗口事件steelMarker.addEventListener("mouseout",function () {this.closeInfoWindow();});}}},error:function(e){//alert("获取信息失败");}
});

百度地图鼠标滑过marker时打开自定义信息窗口相关推荐

  1. js百度地图鼠标移上覆盖物时 省市区高亮,移走时恢复

    鼠标移入事件 mouseoverMark (area) {//加了定时器是防止频繁触发移入事件clearTimeout(this.c);this.c = setTimeout(() => {// ...

  2. 百度地图自定义信息窗口样式

    在项目中,UI经常会把信息窗口做自定义设计,那么如何实现自定义样式的信息窗口呢.核心代码如下: /** 创建信息窗口* */function _createMapvInfoWindow(width,h ...

  3. 百度地图鼠标经过图层时高亮显示图标及标签内容

    百度地图开发常用网站 1.百度地图开放平台 http://lbsyun.baidu.com/ 2.百度地图 Javascript API JavaScript API v3.0 http://lbsy ...

  4. 百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题

    项目中,需求:在百度地图上实时画出车辆,并能点击车辆弹出信息框查看实时信息. 实现:通过不停的画覆盖物并删除掉.点击覆盖物时弹出信息窗口. 问题:删除掉覆盖物后信息窗也删除掉了.因为信息窗是建立在覆盖 ...

  5. js百度地图鼠标绘制工具条库

    本篇文章是介绍百度地图鼠标绘制工具条库基本使用 百度地图的覆盖物的编辑类参考:[鼠标绘制工具条库](http://api.map.baidu.com/library/DrawingManager/1. ...

  6. 百度地图添加多个marker点位标注

    百度地图添加多个marker点位标注 新建一个TMap.js文件 export function TMap(key) {return new Promise(function (resolve, re ...

  7. 百度地图api html信息窗口,百度地图 javascript api自定义信息窗口

    百度 js api中存在infoWindow的类,就是marker 点击后显示的信息窗口, 他存在一下问题 1.在map中只能显示一个infowindow, 2.该信息窗口的样式无法修改,显示的内容具 ...

  8. 使用百度地图Web服务API查询地点的经纬度信息

    使用百度地图Web服务API查询地点的经纬度信息 API地理编码服务 数据 结果 API地理编码服务 地理编码服务(又名Geocoder)是一类Web API接口服务: 地理编码服务提供将结构化地址数 ...

  9. 百度地图JavaScript API覆盖物旋转时出现偏移

    在项目中,调用百度地图JavaScript API,做覆盖物的旋转再添加到地图上,结果出现偏移了. 调试过程中的效果图: 发现图片的旋转并不是按车子的中心来的,而是之外的一个点.最后发现犯了一个很细节 ...

最新文章

  1. redis 双写一致性 看一篇成高手系列1
  2. Matplotlib的几个典型绘制实验
  3. 网易=4 ×(新浪 + 搜狐)
  4. 过滤选择器——子元素过滤选择器
  5. 深入理解卷积层,全连接层的作用意义
  6. C# 从DataTable中取值
  7. 有关css3的一些问题
  8. Struts2回顾复习02
  9. LabVIEW参考资料汇总
  10. 【Python古诗词鉴赏小程序】千古绝唱,精选中国最美古诗句,经典咏流传~
  11. 在年轻人的兴趣场景里,TT语音母公司趣丸掘金语音社交
  12. docker build报错解决:error creating overlay mount to .../overlay
  13. 【YOLOV5-5.x 源码解读】plots.py
  14. This generated password is for development use only. Your security configuration must be updated bef
  15. 小白学习PYTHON之路---PY文件转换成EXE可执行文件
  16. HbuilderX中的MuMu模拟器调试
  17. 保障4-0601任务打卡
  18. 铅华洗尽的Windows XP
  19. 提醒严肃认真的投机者们注意如下事实
  20. Python学习之学校教学(选择结构与循环结构)抓狐狸问题

热门文章

  1. 【转】一文详解MOS管,看完后醍醐灌顶!
  2. Origin学习笔记——(1)初识Origin
  3. RealMedia文件格式
  4. 网络系统集成实验(三)| 系统集成虚拟局域网(VLAN)配置 修改完全版
  5. php中循环的使用方法,PHP中常用的几个循环方法
  6. java实现 洛谷 P1425 小鱼的游泳时间
  7. Wolfram Mathematica 12教材
  8. 【生成任务下推生成子工序生产计划,无法结单】
  9. Charles破解网站收藏(持续更新)
  10. Photoshop入门课程-imooc