天天看点

lzugis——Arcgis Server for JavaScript API之自定义InfoWindow

用过Arcgis Server for JavaScript API肯定知道InfoWIndow,你在用InfoWindow的时候会发现各种问题,例如不能完全显示的问题,遮盖对象的问题等等,所以呢我在实现这个功能的时候动了下脑子,想自己用div+css弄一个,倒腾了半天,弄出来了一个如下所示的:

lzugis——Arcgis Server for JavaScript API之自定义InfoWindow

做的比较丑陋,样式方面还得好好下下功夫,东西是差不多实现了,下面说说思路:

首先,DIV定义,这个样式,我定义了5个div,分别是infowin,title,colse,content,arrow,其中,infowin是整个InfoWindow的大框架,title为标题,close为关闭按钮,content为主要内容,arrow为下面的小尾巴,我们可以将这个小尾巴做的长一点,以免对象被遮盖的情况,代码为:

定义了div就得进行布局,定义样式了,样式为:

样式定义完之后就得考虑事件了,一般InfoWindow是在点击某个对象时弹出来的,所以我们得定义对象图层的click事件:

点击对象,在鼠标的点击位置出现,所以我们得将infowin的position样式设为absolute,并定义left和top分别为clientX和clientY,并将其display设置为block,将其显示,实现的详细代码如下:

目前只实现到了这儿, 还有以下问题待解决:1、地图拖动后infowin随着地图的联动;2、地图缩放后infowin随着地图的联动;3、内容不在可视范围时候的移动;4、样式,挺难看的。希望有人实现后共享下代码,造福全GISer。

lzugis

继续阅读