fusiontips does not use style object
GoogleCodeExporter opened this issue · comments
1. Call 'enableMapTips' as documented.
2. See that the opts object is not passed to the constructor.
3. See that the onAdd function adds styles directly to the tooltip div.
Fix 1: pass the options object to the constructor.
Fix 2: let users pass a CSS class name to the options:
var mapTipOptions = {
...
className: 'mapToolTip'
}
google.maps.FusionTablesLayer.prototype.enableMapTips = function(opts) {
opts = opts || {};
var maptip = new FusionTipOverlay(opts, null);
...
function FusionTipOverlay(opts) {
...
this.style_ = opts.style || {};
this.className = opts.className || '';
}
FusionTipOverlay.prototype.onAdd = function() {
var div = document.createElement('DIV');
if (this.className) {
// use user style
div.className = this.className;
} else {
// no style to use, so create fallback style
div.style.border = "1px solid black";
div.style.position = "absolute";
div.style.whiteSpace = "nowrap";
div.style.backgroundColor = "#ffffcc";
div.style.fontSize = 'x-small';
}
if (this.style_) {
// override with style object passed in options
for (var x in this.style_) {
if (this.style_.hasOwnProperty(x)) {
div.style[x] = this.style_[x]
}
}
}
Original issue reported on code.google.com by arthurclemens
on 26 Jan 2012 at 11:19
Is there an example of your use case you can share (or attach to this issue)?
Do you need the css class applied or just the styles that are passed into the
enableMapTips call?
Like this (temporary test link):
http://www.geocodezip.com/fusiontips/examples/fusiontips_style.html
Original comment by geocodezip
on 19 Sep 2013 at 6:00
Passing a style object in Javascript is not ideal, I would see it as another
workaround.
Because the downside is that you will have defined styles in different places.
Especially when you use a CSS preprocessor (LESS, SASS) styles will only be
managed as CSS.
Original comment by arthurclemens
on 19 Sep 2013 at 6:12
Do you have a patch that does that?
Original comment by geocodezip
on 20 Sep 2013 at 6:07
It is not formally a patch, but the code above should get you a long way.
Original comment by arthurclemens
on 20 Sep 2013 at 6:32
> the code above should get you a long way.
It did. It works for the style object, but not for the className.
Original comment by geocodezip
on 20 Sep 2013 at 8:25
It does seem to be working:
http://www.geocodezip.com/fusiontips/examples/fusiontips_class.html
Original comment by geocodezip
on 3 Oct 2013 at 4:47
Any feedback on this test version? It seems to be working, I will check it in
if there isn't any objection.
Original comment by geocodezip
on 5 Oct 2013 at 8:59
- Changed state: Started
fixed revision 512
http://gmaps-utility-gis.googlecode.com/svn/trunk/fusiontips/examples/fusiontips
_class.html
Original comment by geocodezip
on 7 Oct 2013 at 12:44
- Changed state: Fixed