diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-11-08 01:08:14 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-11-08 01:08:14 +0100 |
| commit | 8ed703c38474c9939ab72de7d90c30c6ae4605f0 (patch) | |
| tree | cb9fab5045f5eecb2242973ad497446190660e13 | |
| parent | 86e271d5e31f4e0ef05e0ab1eb5136ff38612cc7 (diff) | |
| download | Chimère-8ed703c38474c9939ab72de7d90c30c6ae4605f0.tar.bz2 Chimère-8ed703c38474c9939ab72de7d90c30c6ae4605f0.zip | |
JS: allow customization of marker hover
| -rw-r--r-- | chimere/static/chimere/js/jquery.chimere.js | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js index e2c7daf..9e35f05 100644 --- a/chimere/static/chimere/js/jquery.chimere.js +++ b/chimere/static/chimere/js/jquery.chimere.js @@ -110,6 +110,9 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { new OpenLayers.Size(21, 25), new OpenLayers.Pixel(-(21/2), -25)), cluster_icon: null, + marker_hover_id:'marker_hover', + marker_hover_content_id:'marker_hover_content', + marker_hover_offset: null, icon_start: null, icon_step: null, icon_end: null @@ -823,8 +826,8 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { marker.setUrl(marker.icon_hover_url); } px = settings.map.getPixelFromLonLat(marker.lonlat); - marker_hover = $('#marker_hover'); - marker_hover_content = $('#marker_hover_content'); + marker_hover = $('#'+settings.marker_hover_id); + marker_hover_content = $('#'+settings.marker_hover_content_id); marker_hover_content.html(marker.category_name); var map_position = $(settings.map.div).offset(); @@ -835,8 +838,11 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { + parseInt(marker_hover.css("margin-right"), 10) + parseInt(marker_hover.css("borderLeftWidth"), 10) + parseInt(marker_hover.css("borderRightWidth"), 10); - $('#marker_hover').css('left', px.x + map_position.left - - width/2 + 1); + var pos_x = px.x + map_position.left + - width/2 + 1; + if (settings.marker_hover_offset) + pos_x += settings.marker_hover_offset.x; + $('#'+settings.marker_hover_id).css('left', pos_x); var height = marker_hover.height(); height += parseInt(marker_hover.css("padding-top"), 10) + parseInt(marker_hover.css("padding-bottom"), 10) @@ -844,10 +850,16 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { + parseInt(marker_hover.css("margin-bottom"), 10) + parseInt(marker_hover.css("borderBottomWidth"), 10) + parseInt(marker_hover.css("borderTopWidth"), 10); - $('#marker_hover').css('top', px.y + map_position.top - - height - - marker.icon.size.h); - $('#marker_hover').show(); + console.log(px.y); + console.log(map_position.top); + console.log(height); + console.log(marker.icon.size.h); + var pos_y = px.y + map_position.top + - height - marker.icon.size.h; + if (settings.marker_hover_offset) + pos_y += settings.marker_hover_offset.y; + $('#'+settings.marker_hover_id).css('top', pos_y); + $('#'+settings.marker_hover_id).show(); OpenLayers.Event.stop(evt); }; var markerOut = function (evt) { @@ -856,7 +868,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { if (marker.icon_hover_url){ marker.setUrl(marker.icon_url); } - $('#marker_hover').hide(); + $('#'+settings.marker_hover_id).hide(); OpenLayers.Event.stop(evt); }; marker.events.register('click', feature, markerClick); @@ -1407,7 +1419,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { if (bounds) settings.map.zoomToExtent(bounds); }, hidePopup: function (evt) { - $('#marker_hover').hide(); + $('#'+settings.marker_hover_id).hide(); if (settings.hide_popup_fx) { settings.hide_popup_fx(evt, settings) } @@ -1421,12 +1433,12 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { settings.current_popup.hide(); -/* -var evtPx = {xy: settings.map.getPixelFromLonLat( - /* settings.map.getLonLatFromViewPortPx(evt.xy))}; -evtPx.type = 'click';*/ + /* + var evtPx = {xy: settings.map.getPixelFromLonLat( + /* settings.map.getLonLatFromViewPortPx(evt.xy))}; + evtPx.type = 'click';*//* settings.map.events.triggerEvent('click', - {xy: settings.map.minPx}); + {xy: settings.map.minPx});*/ /* {xy: settings.map.getPixelFromLonLat( settings.map.getLonLatFromViewPortPx(evt.xy))});*/ |
