如何调整Grails UI插件中日期显示日历的位置,而不会在页面调整大小时更改位置?

时间:2012-04-20 17:16:55

标签: grails datepicker yui grails-plugin

我想更改Grails UI插件的datePicker部分的日历显示位置。经过一番挖掘后,我在InputTagLib.groovy文件中找到了它:

                    out << """
            YAHOO.util.Event.on("${showButtonId}", "click", function() {
                var buttonRegion = YAHOO.util.Dom.getRegion('${showButtonId}');
                var buttonHeight = buttonRegion.bottom - buttonRegion.top;
                var buttonWidth = buttonRegion.right - buttonRegion.left;
                var xy = YAHOO.util.Dom.getXY('${showButtonId}');
                var newXY = [xy[0] + buttonWidth, xy[1] + buttonHeight];
                YAHOO.util.Dom.setXY('${id}_calContainer_c', newXY);
                GRAILSUI.${jsid}Panel.show();
                if (YAHOO.env.ua.opera && document.documentElement) {
                    // Opera needs to force a repaint
                    document.documentElement.className += "";
                }
            });"""

位置设置在这一行:

                    YAHOO.util.Dom.setXY('${id}_calContainer_c', newXY);

YAHOO.util.Dom.setXY()方法有两个参数。

  

setXY方法的第一个参数是HTMLElement的ID或实际的HTMLElement对象。第二个参数是一个包含两个值的数组:[x,y]其中x是距文档左边缘的距离,y是距文档上边缘的距离。

来源:http://developer.yahoo.com/yui/examples/dom/setxy.html

因此,我可以通过更改传递给setXY方法的newXY变量中的值来轻松调整日历显示的位置,并且它可以正常工作。

但是,如果我调整页面大小,日历会将其左上角直接放在showButton左下角的下方。当页面调整大小时,重新定位的原因是什么?如何解决?

编辑:更多信息:

  • 这种情况发生在IE,Firefox和Chrome的最新版本中
  • 如果我调整页面大小,然后点击按钮显示日历,则日历显示在预期的位置,但如果我在日历打开后再次调整页面大小,它将重新定位

0 个答案:

没有答案