YUI3 Overlay的使用「建议收藏」

YUI3 Overlay的使用「建议收藏」YUI3的Overlay为我们提供了一个创建叠加层的方便的方(从名字就可以看出来),他扩展自Widget类。目前的版本,仅支持简单的页面XY定位、相对于一个Node或者viewport对其或居中。下面来体验一下Overlay。最简单的引用YUI3的方法自然是引用Yahoo服务器上的种子文件,地址如下:<scriptsrc="http://yui.yahooapis.com/3…

大家好,又见面了,我是你们的朋友全栈君。

YUI3的Overlay为我们提供了一个创建叠加层的方便的方(从名字就可以看出来),他扩展自Widget类。目前的版本,仅支持简单的页面XY定位、相对于一个Node或者viewport对其或居中。下面来体验一下Overlay。

最简单的引用YUI3的方法自然是引用Yahoo服务器上的种子文件,地址如下:

<script src="http://yui.yahooapis.com/3.0.0/build/yui/yui-min.js"></script>

引用了种子文件之后,我们就可以在我们的应用中使用Overlay了,建立一个新的YUI的命名空间,如下:

YUI().use(‘overlay’,function(Y){
    var overlay = Y.Overlay({
         contentBox:“#MyContent”,
         visible:true,
         width:“20em”,
         height:“20em”,
         xy:[200,200]    
    });
    overlay.render();
});
先来熟悉一下overlay所支持的属性:

Attribute Description
x, y and xy Positioning attributes, to set the XY position in page co-ordinates on the Overlay’s bounding box. Set to [0,0] by default
zIndex Sets the z-index on the Overlay’s bounding box. Set to 0 by default.
shim Boolean, indicating whether or not an iframe shim should be added to the Overlay to protect against select box bleed through. It is only enabled by default for IE6.
align Used to align a specific point on the Overlay’s bounding box to a specific point on another node, or the viewport. Set to null by default.
centered Used to center the Overlay inside another node, or inside the viewport. Set to false by default.
headerContent Used to set the content of the Overlay’s header section. No default value set.
bodyContent Used to set the content of the Overlay’s body section. No default value set.
footerContent Used to set the content of the Overlay’s footer section. No default value set.
fillHeight Specifies which of the 3 sections – header, body or footer, should be automatically sized to fill out the height of the Overlay, if a fixed height has been set. Set to WidgetStdMod.BODY by default. Can be disabled by setting to null.

内容
overlay的内容既可以是我们事先写在页面中的,也可以通过script在后期创建。因为使用了标准的模块,所以内容基本上有三个部分:headerContent、bodyContent、footerContent。通过脚本设置内容的时候,既可以直接填入innerHTML,也可以通过传入一个node对象来实现,使用的方式非常的灵活。

定位

Overlay的定位有三种方式,xy、对齐、居中。

xy定位的方式是通过指定x,y或者xy来为叠加层定位,这个定位是基于页面的xy坐标,比如[200,200]是相对于页面左上角分别200px的位置。

对齐(align),可以将overlay与页面中的某个node进行对齐,通过传入一个两个属性的对象来实现,如下例:

YUI().use(‘overlay’,function(Y){
  var overlay = Y.overlay({
       contentBox:“MyContent”
       align:{
             node:“MyAchor”
             points:[Y.WidgetPositionExt.TL,Y.WidgetPositionExt.TR]

});
其中points表示叠加层和要对其的node的位置关系,第一个参数为叠加层,第二个为对齐node,上例的参数表示叠加层的左上角和node的右上角对齐。

层叠顺序
IE6下有一个著名的bug,就是select控件默认总是zindex高于其他所有的层,overlay的shim属性正是考虑了这个问题存在的。这个选项默认在IE6下是打开的,会通过创建iframe的方式来规避这个bug。

使用overlay也好,其他的yui特性也好,感觉非常的方便和灵活,可以说是一个真真正正为开发者考虑的js框架,而我们也应该学习YUI3的这种设计思想和风格,让自己的应用也变得更加灵活和方便。

总体来看,目前YUI3的Overlay基本能够满足我们日常创建一些叠加层的需要,但是还有一些更高级的属性或者控制功能期待在后续的版本中加入进来。

Technorati Tags:
YUI3,
Overlay,
浮动层

参考资料:
1、YAHOO YUI3 Overlay

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160351.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2021 激活码-激活码分享[通俗易懂]

    (idea2021 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~V…

    2022年3月22日
    73
  • gridview样式模板_react-grid-layout

    gridview样式模板_react-grid-layoutGridView中有些td、th的样式不好设置或是里面的控件,可能用如下方式设置table.GridView td,th{    PADDING-RIGHT:1px;   PADDING-LEFT:3px;   PADDING-BOTTOM:1px;   PADDING-TOP:1px;   FONT-FAMILY:Arial,宋体,Verdan…

    2022年9月24日
    1
  • 协调世界时utc_utc协调世界时什么意思

    协调世界时utc_utc协调世界时什么意思协调世界时UTC:又称世界标准时间或世界协调时间,简称UTC(从英文“CoordinatedUniversalTime”/法文“TempsUniverselCordonné”而来

    2022年8月2日
    8
  • 常见MQTT服务器搭建与试用(亲测通过)[通俗易懂]

    常见MQTT服务器搭建与试用(亲测通过)[通俗易懂]常见MQTT服务器搭建与试用(亲测通过)简介MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽、不可靠的网络的进行远程传感器和控制设备通讯等,正在日益成为物联网通信协议的重要组成部分。MQTT现在主要用于即时通讯,物联网M2M,物联网采集等。本文就社区上常见的开源MQTT服务器在常见操作系统上…

    2022年5月12日
    89
  • c语言获得当前时间_c语言怎么表示时间

    c语言获得当前时间_c语言怎么表示时间函数名:time()头文件:time.h函数原型:time_ttime(time_t*timer)功能:获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从UTC(CoordinatedUniversalTime)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后可以调用localtime将time_t…

    2022年10月10日
    2
  • QLineEdit光标问题

    QLineEdit光标问题QLineEdit 的光标当失去焦点后仍然显示的问题 nbsp nbsp 在 lineedit 和其它按钮之间切换焦点时 注意 lineedit 的设置有顺序 否则当失去焦点时仍有光标闪 或者得到焦点无光标 nbsp nbsp 使 lineedit 有效 lineedit gt setEnabled true lineedit gt setFocus nbsp nbsp nbsp nbsp 使 lineedit 无效 l

    2025年12月4日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号