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.
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 |
2 | YAHOO.example.container.panel1 = new YAHOO.widget.Panel("panel1", { width:"320px", visible:false, constraintoviewport:true } ); |
3 | YAHOO.example.container.panel1.render(); |
4 | |
5 | // Instantiate a Panel from script |
6 | YAHOO.example.container.panel2 = new YAHOO.widget.Panel("panel2", { width:"320px", visible:false, draggable:false, close:false } ); |
7 | YAHOO.example.container.panel2.setHeader("Panel #2 from Script"); |
8 | YAHOO.example.container.panel2.setBody("This is a dynamically generated Panel."); |
9 | YAHOO.example.container.panel2.setFooter("End of Panel #2"); |
10 | YAHOO.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 | ? |
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.
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.
Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Copyright Policy - Job Openings