YUI Library Home

YUI Library Examples: Container Family: Simple Panel Example

Container Family: Simple Panel Example

Use the show/hide buttons below to show and hide two simple panels. The first panel is created based on markup on the page and its draggable configuration is set to true; it can be dragged around the screen.

Creating Two Simple Panels

The Panel Control is an extension of Overlay that is meant to behave similarly to an OS window. Unlike true browser popup windows, Panel Control instances are floating DHTML elements embedded directly within the page context. The Panel Control extends the functionality of Overlay, adding support for modality, drag and drop, and close/dismiss buttons. Panel includes a pre-defined stylesheet to support the default look and feel characteristics that you see on this page.

In this tutorial, we will build two Panels. One of them will be based on existing markup; the other will be created dynamically using script. We'll pass configuration properties via the constructor to specify any non-default settings we want to use in our Panel instances.

1// Instantiate a Panel from markup 
2YAHOO.example.container.panel1 = new YAHOO.widget.Panel("panel1", { width:"320px", visible:false, constraintoviewport:true } ); 
3YAHOO.example.container.panel1.render(); 
4 
5// Instantiate a Panel from script 
6YAHOO.example.container.panel2 = new YAHOO.widget.Panel("panel2", { width:"320px", visible:false, draggable:false, close:false } ); 
7YAHOO.example.container.panel2.setHeader("Panel #2 from Script"); 
8YAHOO.example.container.panel2.setBody("This is a dynamically generated Panel."); 
9YAHOO.example.container.panel2.setFooter("End of Panel #2"); 
10YAHOO.example.container.panel2.render("container"); 
view plain | print | ?

These Panels introduce a few configuration properties. The constraintoviewport property, when set to true, will keep the Panel from being positioned outside of the viewport; this defends against the panel being dragged out of the viewport by the user and against the panel being moved outside the viewport by scripted changes to its x/y properties. The draggable property determines whether the Panel can be dragged (be sure to include the Drag and Drop Utility if you want your panel to be draggable), and the close property determines whether the close icon should be displayed in the header of the Panel.

The markup for panel1 is in standard module format, as is required by the Module and Overlay classes on which Panel is built. We also provide buttons to allow for easy showing and hiding of both Panels:

1<div> 
2    <button id="show1">Show panel1</button>  
3    <button id="hide1">Hide panel1</button> 
4</div> 
5 
6<div id="panel1"
7    <div class="hd">Panel #1 from Markup</div> 
8    <div class="bd">This is a Panel that was marked up in the document.</div> 
9    <div class="ft">End of Panel #1</div> 
10</div> 
11 
12<div> 
13    <button id="show2">Show panel2</button>  
14    <button id="hide2">Hide panel2</button> 
15</div> 
view plain | print | ?

Configuration for This Example

You can load the necessary JavaScript and CSS for this example from Yahoo's servers. Click here to load the YUI Dependency Configurator with all of this example's dependencies preconfigured.

YUI Logger Output:

Logger Console

INFO 1227ms (+0) 12:46:14 AM:

Config

Firing Config event: iframe=false

INFO 1227ms (+0) 12:46:14 AM:

Config

setProperty: xy=8,477

INFO 1227ms (+0) 12:46:14 AM:

Config

setProperty: y=477

INFO 1227ms (+0) 12:46:14 AM:

Config

setProperty: x=8

INFO 1227ms (+0) 12:46:14 AM:

Config

Firing Config event: iframe=false

INFO 1227ms (+0) 12:46:14 AM:

Config

setProperty: xy=8,342

INFO 1227ms (+0) 12:46:14 AM:

Config

setProperty: y=342

INFO 1227ms (+3) 12:46:14 AM:

Config

setProperty: x=8

INFO 1224ms (+1) 12:46:14 AM:

Config

Firing Config event: iframe=false

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: visible=false

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: close=false

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: draggable=false

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: fixedcenter=false

INFO 1223ms (+0) 12:46:14 AM:

Config

Config event queue: fixedcenter=false, draggable=false, close=false, visible=false, iframe=false,

INFO 1223ms (+0) 12:46:14 AM:

Config

queueProperty: iframe=undefined

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: width=320px

INFO 1223ms (+0) 12:46:14 AM:

Config

setProperty: strings=[object Object]

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: strings=[object Object]

INFO 1223ms (+0) 12:46:14 AM:

Config

setProperty: zindex=0

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: zindex=null

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: modal=false

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: underlay=shadow

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: dragonly=false

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: constraintoviewport=false

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: preventcontextoverlap=false

INFO 1223ms (+0) 12:46:14 AM:

Config

setProperty: autofillheight=body

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: autofillheight=body

INFO 1223ms (+0) 12:46:14 AM:

Config

Firing Config event: appendtodocumentbody=false

INFO 1223ms (+1) 12:46:14 AM:

Config

Firing Config event: monitorresize=true

INFO 1222ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, autofillheight=body, preventcontextoverlap=false, constraintoviewport=false, dragonly=false, underlay=shadow, modal=false, zindex=null, strings=[object Object], width=320px, fixedcenter=false, iframe=false, draggable=false, close=false, visible=false,

INFO 1222ms (+0) 12:46:14 AM:

Config

queueProperty: close=false

INFO 1222ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, autofillheight=body, preventcontextoverlap=false, constraintoviewport=false, dragonly=false, underlay=shadow, modal=false, zindex=null, strings=[object Object], close=true, width=320px, fixedcenter=false, iframe=false, draggable=false, visible=false,

INFO 1222ms (+0) 12:46:14 AM:

Config

queueProperty: draggable=false

INFO 1222ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, autofillheight=body, preventcontextoverlap=false, constraintoviewport=false, dragonly=false, draggable=true, underlay=shadow, modal=false, zindex=null, strings=[object Object], close=true, width=320px, fixedcenter=false, iframe=false, visible=false,

INFO 1222ms (+0) 12:46:14 AM:

Config

queueProperty: visible=false

INFO 1222ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, autofillheight=body, preventcontextoverlap=false, constraintoviewport=false, dragonly=false, draggable=true, underlay=shadow, modal=false, visible=true, zindex=null, strings=[object Object], close=true, width=320px, fixedcenter=false, iframe=false,

INFO 1222ms (+1) 12:46:14 AM:

Config

queueProperty: width=320px

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, autofillheight=body, iframe=false, preventcontextoverlap=false, constraintoviewport=false, dragonly=false, draggable=true, underlay=shadow, modal=false, visible=true, zindex=null, strings=[object Object], close=true,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: strings=[object Object]

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: strings=[object Object]

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: strings

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: keylisteners=undefined

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: keylisteners

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, autofillheight=body, iframe=false, preventcontextoverlap=false, constraintoviewport=false, close=true, dragonly=false, draggable=true, underlay=shadow, modal=false, visible=true, zindex=null,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: modal=false

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: modal=false

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: modal

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, autofillheight=body, iframe=false, zindex=null, preventcontextoverlap=false, constraintoviewport=false, close=true, dragonly=false, draggable=true, underlay=shadow, visible=true,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: underlay=shadow

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: underlay=shadow

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: underlay

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, autofillheight=body, iframe=false, zindex=null, preventcontextoverlap=false, constraintoviewport=false, close=true, visible=true, dragonly=false, draggable=true,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: dragonly=false

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: dragonly=false

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: dragonly

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, autofillheight=body, iframe=false, zindex=null, preventcontextoverlap=false, constraintoviewport=false, close=true, draggable=true, visible=true,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: draggable=true

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: draggable=true

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: draggable

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, autofillheight=body, iframe=false, zindex=null, preventcontextoverlap=false, constraintoviewport=false, close=true, visible=true,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: close=true

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: close=true

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: close

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, visible=true, autofillheight=body, iframe=false, zindex=null, preventcontextoverlap=false, constraintoviewport=false,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: preventcontextoverlap=false

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: preventcontextoverlap=false

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: preventcontextoverlap

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, visible=true, autofillheight=body, constraintoviewport=false, iframe=false, zindex=null,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: iframe=false

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: iframe=false

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: iframe

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, visible=true, autofillheight=body, zindex=null, constraintoviewport=false,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: constraintoviewport=false

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: constraintoviewport=false

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: constraintoviewport

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, visible=true, autofillheight=body, zindex=null,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: zindex=null

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: zindex=null

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: zindex

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, visible=true, autofillheight=body,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: autofillheight=body

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: autofillheight=body

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: autofillheight

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: height=undefined

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: height

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: width=undefined

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: width

INFO 1221ms (+0) 12:46:14 AM:

Config

Config event queue: monitorresize=true, appendtodocumentbody=false, fixedcenter=false, visible=true,

INFO 1221ms (+0) 12:46:14 AM:

Config

queueProperty: fixedcenter=false

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: fixedcenter=false

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: fixedcenter

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: context=undefined

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: context

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: xy=undefined

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: xy

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: y=undefined

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: y

INFO 1221ms (+0) 12:46:14 AM:

Config

setProperty: x=undefined

INFO 1221ms (+0) 12:46:14 AM:

Config

Added property: x

INFO 1221ms (+478) 12:46:14 AM:

Config

Config event queue: visible=true, monitorresize=true, appendtodocumentbody=false,

INFO 743ms (+743) 12:46:14 AM:

LogReader instance0

LogReader initialized

INFO 0ms (+0) 12:46:13 AM:

global

Logger initialized

Note: You are viewing this example in debug mode with logging enabled. This can significantly slow performance.

Reload with logging
and debugging disabled.

Container Family Examples:

More Container Family Resources:

Copyright © 2009 Yahoo! Inc. All rights reserved.

Privacy Policy - Terms of Service - Copyright Policy - Job Openings