代码之家  ›  专栏  ›  技术社区  ›  Kaarel

YUI面板和滚动

  •  2
  • Kaarel  · 技术社区  · 17 年前

    new YAHOO.widget.Panel("parameters", {
                            fixedcenter: true,
                            constraintoviewport: true,
                            underlay: "shadow",
                            visible: false,
                            close: true,
                            draggable: true,
                            width: "350px" });
    

    显示面板时,我希望它始终可见,即使在滚动窗口时也是如此。 多亏了我,情况也是如此 fixedcenter: true . 问题是,当滚动窗口时,面板将自身定位到窗口的中心,即使它以前被拖动到其他地方。

    我应该如何修改上述定义,以便在滚动窗口时,面板相对于窗口的位置保持不变?

    2 回复  |  直到 17 年前
        1
  •  4
  •   Simon Lieschke    17 年前

    将面板容器包装在具有固定位置的包装器元素中,例如。

    <div id="wrapper" style="position: fixed">
        <div id="parameters">
            <div class="hd">Header</div>
            <div class="bd">Hello, this is my awesome panel.</div>
            <div class="ft">Footer</div>
        </div>
    </div>
    

    在不使用 fixedcenter 属性,并在渲染面板后立即将其居中,例如。

    var panel = new YAHOO.widget.Panel("parameters", {
            constraintoviewport: true,
            underlay: "shadow",
            visible: false,
            close: true,
            draggable: true,
            width: "350px"
        });
    panel.render();
    panel.center();
    

    当窗口滚动时,面板现在应保持在相同的位置。我只在Firefox3.0和InternetExplorer7和8中测试过这个。

    我已经 posted the source 一个自包含的示例,将演示此工作原理。

        2
  •  0
  •   Hozkar    13 年前

    根据文档,将fixedcenter设置为:

    “包含” 启用固定中心定位,如使用true 选项但是,与将属性设置为true不同,当 视口,当用户滚动时,它不会自动居中 或调整窗口大小(直到窗口足够大以容纳 和页脚UI控制用户可能需要访问的内容。

    http://developer.yahoo.com/yui/docs/YAHOO.widget.Overlay.html

    推荐文章