Table of Contents
Preface
Chapter 1: Introducing the YUI
Chapter 2: Creating Consistency With The CSS Tools
Chapter 3: DOM Manipulation and Event Handling
Chapter 4: AJAX and Connection Manager
Chapter 5: Animation and the Browser History Manager
Chapter 6: Buttons and Trees
Chapter 7: Navigation and AutoComplete
Chapter 8: Content Containers and Tabs
Chapter 9: Drag-and-Drop with the YUI
Chapter 10: Advanced Debugging with Logger
Index
- Chapter 1: Introducing the YUI
- What is the YUI?
- Who Is It for and Who Will It Benefit the Most?
- Why the Yahoo! User Interface Library?
- Graded Browser Support
- What Comes with the YUI?
- The Library Topography
- The Core Files
- The Utilities
- The Controls
- The CSS Tools
- The Library's Structure
- What Else Does Yahoo! Provide?
- Are There Any Licensing Restrictions?
- Installing the YUI
- Creating an Offline Library Repository
- Using the Library Files in Your Own Web Pages
- Code Placement
- Perfect Date Selection with the Calendar Control
- The Basic Calendar Class
- The CalendarGroup Class
- Implementing a Calendar
- The Initial HTML Page
- Beginning the Scripting
- Highly Eventful
- The DateMath Class
- Summary
- What is the YUI?
- Chapter 2: Creating Consistency With The CSS Tools
- Tools of the Trade
- Element Normalisation with reset.css
- Element Rules
- First Base
- Headings
- Lists
- Tables
- Miscellaneous Rules
- Tidying up Text with fonts.css
- The Body
- Tables
- Layout Pages with Ease Using grids.css
- Setting up Your Page Structure
- The Basic Building Blocks of Your Pages
- Grid Nesting
- A Word on Sam
- Summary
- Chapter 3: DOM Manipulation and Event Handling
- Working with the DOM
- DOM Concepts
- Common DOM Scripting Techniques
- Common DOM Methods
- Further Reading
- DOM—the Old Way
- DOM—the YUI Way
- DOM Manipulation in YUI
- Many DOMs Make Light Work
- The DOM Class
- Using the DOM Class
- Additional Useful DOM Methods
- The Region Class
- I See Your Point
- Listening for Events the Easy (YUI) Way
- Event Models
- Event History
- W3C Events
- The Event Object
- YUI Event Capturing
- Evolving Event Handlers
- Reacting When Appropriate
- A Look at the Event Class
- Listeners
- Custom Events
- The Custom Event Class
- Creating a Custom Event
- Summary
- Working with the DOM
- Chapter 4: AJAX and Connection Manager
- The Connection Manager—A Special Introduction
- The XMLHttpRequest Object Interface
- A Closer Look at the Response Object
- Managing the Response with a Callback Object
- Working with responseXML
- Adding the JavaScript
- Styling the Newsreader
- Useful Connection Methods
- A Login System Fronted by YUI
- Summary
- Chapter 5: Animation and the Browser History Manager
- Introducing the Animation Utility
- The Class Structure of the Animation Utility
- The Animation Constructor
- Animation's Properties
- Custom Animation Events
- The Subclasses
- Additional Classes
- Members of the Easing Class
- Using Animation to Create an Accordion Widget
- A Basic Animation Script
- Dealing With Motion
- Curvature
- Restoring the Browser's Expected Functionality
- The BHM Class
- Using BHM
- The BHM Script
- Summary
- Introducing the Animation Utility
- Chapter 6: Buttons and Trees
- Why Use the YUI Button Family?
- Meet the Button Control
- YAHOO.widget.Button
- YAHOO.widget.ButtonGroup
- Using the Button Control
- Creating the YUI Button Objects
- Additional Button Types
- Using the Split Button Type
- Getting Started
- Scripting the Split Button
- Tree-like Structures with the TreeView Control
- Class of Nine
- YAHOO.widget.TreeView
- YAHOO.widget.Node
- YAHOO.widget.TextNode
- YAHOO.widget.HTMLNode
- YAHOO.widget.RootNode
- YAHOO.widget.MenuNode
- The Animation Classes
- Implementing a Tree
- Begin the Scripting
- Creating the Tree Nodes
- Drawing the Tree On-Screen
- Using Custom Icons
- Applying the Icon Styles
- Dynamic Nodes—Making the Library Work Harder
- Summary
- Chapter 7: Navigation and AutoComplete
- Common Navigation Structures
- Instant Menus—Just Add Water (or a Menu Control)
- The Menu Classes
- Menu Subclasses
- The MenuItem Class
- MenuItem Subclasses
- Creating a Basic Navigation Menu
- The Initial HTML Page
- The Underlying Menu Mark Up
- Creating the Menu Object
- Styling the Page
- Using the ContextMenu
- ContextMenu Scripting
- Wiring Up the Backend
- The Application-style MenuBar
- Look Ahead with the AutoComplete Control
- AutoComplete Components
- The Constructors
- Custom Styling and Visual Impact
- A Rich Event Portfolio
- Implementing AutoComplete
- Adding Bling to Your AutoComplete
- Working With Other DataSources
- Bring on the Data
- Now for Some PHP
- Summary
- Chapter 8: Content Containers and Tabs
- Meet the YUI Container Family
- Module
- Overlay
- Panel
- Tooltip
- Dialog
- SimpleDialog
- Container Effects
- OverlayManager
- Creating a Panel
- Preparation
- The New Code
- Working with Dialogs
- Preparation
- Additional Library files
- Changes to the HTML
- Some Additional CSS
- Dialog's Required JavaScript
- Extending the Dialog
- The PHP Needed by Dialog
- A Quick SimpleDialog
- Additonal JavaScript for SimpleDialog
- Easy Tooltips
- Preparation
- Overriding Sam
- The YUI TabView Control
- TabView Classes
- Properties, Methods, and Events
- Adding Tabs
- The Underlying Mark Up
- The JavaScript Needed by TabView
- A Little CSS
- Summary
- Meet the YUI Container Family
- Chapter 9: Drag-and-Drop with the YUI
- Dynamic Drag-and-Drop without the Hassle
- The Different Components of Drag-and-Drop
- Design Considerations
- Events
- Allowing Your Visitors to Drag-and-Drop
- DragDrop Classes
- The Constructor
- Target Practice
- Get a Handle on Things
- The Drag-and-Drop Manager
- Interaction Modes
- Implementing Drag-and-Drop
- The Required CSS
- Scripting DragDrop
- Creating Individual Drag Objects
- Using DragDrop Events
- Additional CSS
- Extending the DDProxy Object
- Visual Selection with the Slider Control
- The Constructor and Factory Methods
- Class of Two
- A Very Simple Slider
- Getting Started
- Adding the CSS
- Adding the JavaScript
- Summary
- Chapter 10: Advanced Debugging with Logger
- The Purpose of Logger
- The Purpose of the –debug Library Files
- How the Logger Can Help You
- Debugging the Old Way
- Debugging the YUI Way
- Log Message Types
- Logger Layout
- Logger Styling
- Logger is not Omnipotent or Infallible!
- The Logger Classes
- LogMsg Structure
- Generate the UI Interface with LogReader
- The LogWriter Class
- How to Use Logger
- Component Debugging with Logger
- Logging with a Custom Class
- Summary



