jQuery Tools Overlay can be positioned statically when used out of the box, by setting top
and left
properties.
The good news is that the configuration can be overwritten in onBeforeLoad
event handler. This is how an overlay can be positioned next to its trigger:
jQuery('.overlayTrigger').overlay({
...
onBeforeLoad: function() {
var overlay = this.getOverlay();
var trigger = this.getTrigger();
var overlayConfig = this.getConf();
//position overlay
overlayConfig.top = trigger.offset().top
- overlay.outerHeight()
- jQuery(document).scrollTop();
overlayConfig.left = trigger.offset().left
- overlay.outerWidth()
- jQuery(document).scrollLeft();
//... flip popup over when appropriate
if (overlayConfig.top < 0)
overlayConfig.top = trigger.offset().top
+ trigger.outerHeight()
- jQuery(document).scrollTop();
if (overlayConfig.left < 0)
overlayConfig.left = trigger.offset().left
+ trigger.outerWidth()
- jQuery(document).scrollLeft();
}
});