src/cm/media/js/lib/yui/yui_3.10.3/docs/slider/index.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Slider</title>
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
    <link rel="stylesheet" href="../assets/css/main.css">
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
    <script src="../../build/yui/yui-min.js"></script>
    
</head>
<body>
<!--
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
-->
<div id="doc">
    <div id="hd">
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
    </div>
    
        <a href="#toc" class="jump">Jump to Table of Contents</a>
    

            <h1>Slider</h1>
    <div class="yui3-g">
        <div class="yui3-u-3-4">
            <div id="main">
                <div class="content"><div class="intro">
    <p>
        The Slider widget is a UI control that enables the user to adjust
        values in a finite range along a horizontal or vertical axis.
        Typically, the Slider widget is used in a web application as a visual
        replacement for an input box that takes a number as input.
    </p>
</div>
				
<h2 id="getting-started">Getting Started</h2>

<p>
To include the source files for Slider and its dependencies, first load
the YUI seed file if you haven't already loaded it.
</p>

<pre class="code prettyprint">&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;</pre>


<p>
Next, create a new YUI instance for your application and populate it with the
modules you need by specifying them as arguments to the <code>YUI().use()</code> method.
YUI will automatically load any dependencies required by the modules you
specify.
</p>

<pre class="code prettyprint">&lt;script&gt;
&#x2F;&#x2F; Create a new YUI instance and populate it with the required modules.
YUI().use(&#x27;slider&#x27;, function (Y) {
    &#x2F;&#x2F; Slider is available and ready for use. Add implementation
    &#x2F;&#x2F; code here.
});
&lt;&#x2F;script&gt;</pre>


<p>
For more information on creating YUI instances and on the
<a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_use"><code>use()</code> method</a>, see the
documentation for the <a href="../yui/index.html">YUI Global Object</a>.
</p>

				
<h2 id="using">Using Sliders</h2>
			
<h3 id="anatomy">Anatomy of a Slider</h3>

<h4 id="dom-structure">DOM structure</h4>

<p>
    A Slider is comprised of a thumb that slides along a rail.  In the DOM, the
    thumb is a child of the rail element.  The visualization of the rail is
    created by applying a CSS background image to the rail element and two
    child elements used to display the rail's end caps.  The thumb contains two
    <code>&lt;img&gt;</code> elements, one for the thumb graphic and one for
    its shadow.  Using an <code>&lt;img&gt;</code> in the DOM rather than a
    background image for the thumb circumvents a performance issue in older
    versions of Internet Explorer.
</p>

<p>
    The rail element is contained within the standard <code>contentBox</code>
    and <code>boundingBox</code> common to all YUI 3 Widgets.
</p>

<p>
    Like other form controls, Sliders are inline elements.
</p>

<p>
    The complete markup of a Slider is as follows:
</p>

<p>
<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
page's <code>&lt;body&gt;</code> element or to a parent element of the widget in order to apply
the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
</p>
<pre class="code prettyprint">&lt;body class=&quot;yui3-skin-sam&quot;&gt; &lt;!-- You need this skin class --&gt;</pre>


<pre class="code prettyprint">&lt;!-- boundingBox --&gt;
&lt;span class=&quot;yui3-widget yui3-sliderbase yui-slider&quot;&gt;
    &lt;!-- contentBox --&gt;
    &lt;span class=&quot;yui3-slider-content yui3-slider-x&quot;&gt;&lt;!-- or slider-y --&gt;

        &lt;!-- rail --&gt;
        &lt;span class=&quot;yui3-slider-rail&quot;&gt;
            &lt;span class=&quot;yui3-slider-rail-cap-left&quot;&gt;&lt;&#x2F;span&gt;&lt;!-- or cap-top --&gt;
            &lt;span class=&quot;yui3-slider-rail-cap-right&quot;&gt;&lt;&#x2F;span&gt;&lt;!-- or cap-bottom --&gt;

            &lt;!-- thumb --&gt;
            &lt;span class=&quot;yui3-slider-thumb&quot;&gt;
                &lt;img class=&quot;yui3-slider-thumb-shadow&quot;&gt;
                &lt;img class=&quot;yui3-slider-thumb-image&quot;&gt;
            &lt;&#x2F;span&gt;
        &lt;&#x2F;span&gt;

    &lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;</pre>


<h4 id="appearance">Appearance</h4>

<p>
    This is the appearance of a Slider with default Sam skin applied:
</p>

<img src="../assets/slider/images/horiz_slider.png" alt="Horizontal Sliderwith default Sam skin">

<img src="../assets/slider/images/vert_slider.png" alt="Vertical Slider with default Sam skin">

<p>
    See the <a href="#skinning">skinning</a> section below for tips on creating
    your own skin or using one of the prepackaged skins available for Slider as
    of version 3.1.
</p>

<h4 id="thumb_placement">Thumb and end cap placement</h4>

<p>
    The Slider thumb is positioned within the dimensional boundaries of the
    rail element.  The skin CSS positions the rail's end caps just outside the
    rail.  The rail element's height or width, for vertical or horizontal
    Sliders respectively, is configured by the <code>length</code> attribute.
    The default <code>length</code> is 150px.  Due to the end caps, the actual
    footprint of the Slider is a few pixels longer than the
    <code>length</code>.
</p>

<img src="../assets/slider/images/anatomy.png" alt="illustration of the parts and config properties of a Slider">

<h3 id="instantiating">Instantiating and configuring a Slider</h3>

<p>
    There is no required configuration to instantiate a Slider.  By default,
    Sliders are horizontal, 150px wide, and report values from 0 to 100.  Below
    are the configuration attributes available for Slider (excluding those
    inherited from Widget):
</p>

<table>
<thead>
    <tr>
        <th>Attribute</th>
        <th>Description</th>
        <th>Default</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td><code>axis</code></td>
        <td>Specifies horizontal or vertical Slider (&quot;y&quot; for vertical)</td>
        <td>&quot;x&quot;</td>
    </tr>
    <tr>
        <td><code>min</code></td>
        <td>Value at the far left or top of the rail</td>
        <td>0</td>
    </tr>
    <tr>
        <td><code>max</code></td>
        <td>Value at the far right or bottom of the rail</td>
        <td>100</td>
    </tr>
    <tr>
        <td><code>value</code></td>
        <td>The initial value, which will be translated into initial thumb placement</td>
        <td>0</td>
    </tr>
    <tr>
        <td><code>length</code></td>
        <td>Height of vertical Slider rail; width of horizontal Slider rail</td>
        <td>150px</td>
    </tr>
    <tr>
        <td><code>thumbUrl</code></td>
        <td>The path to an image to use as the <code>&lt;img&gt;</code> for the thumb</td>
        <td>Appropriate thumb image for the configured axis in the current skin</td>
    </tr>
    <tr>
        <td><code>clickableRail</code></td>
        <td>Clicking on the rail moves the thumb to that point</td>
        <td>true</td>
    </tr>
</tbody>
</table>
                
<p>
    Here are a few ways to instantiate a Slider:
</p>

<pre class="code prettyprint">YUI({...}).use(&#x27;slider&#x27;,function (Y) {

    &#x2F;&#x2F; Default everything
    var slider = new Y.Slider();
    slider.render(&quot;#slider-parent&quot;);

    &#x2F;&#x2F; Use a custom thumb and width
    var slider = new Y.Slider({
        length : &#x27;200px&#x27;,
        thumbUrl : &#x27;&#x2F;path&#x2F;to&#x2F;local&#x2F;thumb-image.png&#x27;
    });
    slider.render(&#x27;#slider-parent&#x27;);

    &#x2F;&#x2F; Vertical slider with values that increase from bottom to top and
    &#x2F;&#x2F; initialize the thumb in the middle.
    var slider = new Y.Slider({
        axis        : &#x27;y&#x27;,
        min         : 100,
        max         : 0,
        value       : 50
    });
    slider.render(&#x27;#slider-parent&#x27;);
});</pre>


<h3 id="value">Setting and constraining the Slider value</h3>

<h4 id="setting-and-getting-slider-values">Setting and getting Slider values</h4>

<p>
    Like any input element, the most important thing about a Slider is its
    <code>value</code>.  Though <code>value</code> is managed as an attribute,
    Slider provides two convenience methods for accessing it:
</p>

<ul>
    <li><code>getValue()</code></li>
    <li><code>setValue(newVal)</code></li>
</ul>

<pre class="code prettyprint">&#x2F;&#x2F; Specify value at construction
var slider = new Y.Slider({
    value  : 50
});

&#x2F;&#x2F; Get and set the value as an attribute
var val = slider.get(&#x27;value&#x27;);

slider.set(&#x27;value&#x27;,val + 10);

&#x2F;&#x2F; Use the Slider API convenience methods
val = slider.getValue();

slider.setValue(val - 20);</pre>



<h4 id="min_max">Constraining Slider values</h4>

<p>
    A Slider's <code>value</code> is constrained between the configured
    <code>min</code> and <code>max</code> attribute values.  Values outside
    this range are treated as the closer of <code>min</code> or
    <code>max</code>.
</p>

<pre class="code prettyprint">&#x2F;&#x2F; Create a horizontal Slider 300px wide with values from -100 to 100
var slider = new Y.Slider({
    length : 300,
    min    : -100,
    max    : 100
});

slider.setValue(-200); &#x2F;&#x2F; same as setValue(-100)</pre>


<p>
    By default, <code>min</code> is <code>0</code>, <code>max</code> is
    <code>100</code> and <code>value</code> is <code>0</code>.
</p>

<h4 id="vert_min_max"><code>min</code> and <code>max</code> for vertical Sliders</h4>

<p>
    Vertical Sliders associate the top edge of the rail with the
    <code>min</code> value and the bottom edge of the rail with the
    <code>max</code>.  If you prefer values to increase from bottom to top,
    just flip the specified <code>min</code> and <code>max</code> values.
</p>

<pre class="code prettyprint">&#x2F;&#x2F; Create a vertical Slider with value 0 at the bottom, 100 at the top
var v_slider = new Y.Slider({
    axis  : &#x27;y&#x27;,
    min   : 100, &#x2F;&#x2F; vertical Sliders have min at the top
    max   : 0,
    value : 33   &#x2F;&#x2F; initial value
});</pre>


<h4 id="hidden">Sync the UI if the Slider was rendered off the DOM</h4>

<p>
    If a Slider is rendered off the DOM, you must call the Slider's
    <code>syncUI()</code> method after attaching it to the DOM in order for the
    thumb to be placed correctly.  When off DOM, the dimensional information
    necessary to place the thumb is unavailable.
</p>

<pre class="code prettyprint">&#x2F;&#x2F; Create a Slider and render it to an element not on the DOM
var container = Y.Node.create(&quot;&lt;div&gt;&lt;&#x2F;div&gt;&quot;);

var slider = new Y.Slider({ value: 30 });

slider.render( container );

...

&#x2F;&#x2F; Insert the Slider&#x27;s container into the DOM
Y.one( &quot;body&quot; ).insert( container );

&#x2F;&#x2F; Call syncUI() to sync the thumb to the current value
slider.syncUI();</pre>


<h3 id="events">Slider events</h3>

<p>
    Sliders fire the following events during operation:
</p>

<table>
<thead>
    <tr>
        <th>Event</th>
        <th>When</th>
        <th>Payload</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td><code>slideStart</code></td>
        <td>Beginning a thumb drag</td>
        <td><code>{ ddEvent: (drag:start event) }</code></td>
    </tr>
    <tr>
        <td><code>thumbMove</code></td>
        <td>The thumb position is being changed</td>
        <td><code>{ ddEvent : (drag:drag event) }</code></td>
    </tr>
    <tr>
        <td><code>valueChange</code></td>
        <td>The value attribute is changed by any means</td>
        <td>Normal change event signature (<code>newVal</code>, <code>prevVal</code>, etc).  When dragging, extra event property <code>ddEvent : (drag:drag event)</code> is added</td>
    </tr>
    <tr>
        <td><code>slideEnd</code></td>
        <td>Finishing a thumb drag</td>
        <td><code>{ ddEvent: (drag:end event) }</code></td>
    </tr>
    <tr>
        <td><code>railMouseDown</code></td>
        <td>The rail was clicked</td>
        <td><code>{ ev: (DOM mousedown event) }</code></td>
    </tr>
</tbody>
</table>

<p>
    This is not an exhaustive list.  See the <a href="http://yuilibrary.com/yui/docs/api/module_slider.html">API docs</a> for a complete listing.
</p>

<h3 id="skinning">Skinning</h3>

<p>
<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
page's <code>&lt;body&gt;</code> element or to a parent element of the widget in order to apply
the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
</p>
<pre class="code prettyprint">&lt;body class=&quot;yui3-skin-sam&quot;&gt; &lt;!-- You need this skin class --&gt;</pre>


<h4 id="skin_thumbUrl">Using custom thumb or rail images</h4>

<p>
    You can use alternate rail images by specifying a new image path in your
    CSS, and alternate thumbs can be targeted in the Slider configuration.
</p>

<pre class="code prettyprint">&lt;style type=&quot;text&#x2F;css&quot;&gt;
&#x2F;* The rail and end cap images are shared in a sprite.
 * Include the id of the slider container to increase css specificity *&#x2F;
.yui3-skin-sam #slider-parent .yui3-slider-x .yui3-slider-rail,
.yui3-skin-sam #slider-parent .yui3-slider-x .yui3-slider-rail-cap-left,
.yui3-skin-sam #slider-parent .yui3-slider-x .yui3-slider-rail-cap-right {
    background-image: url(&#x2F;path&#x2F;to&#x2F;new&#x2F;rail.png);
}
&lt;&#x2F;style&gt;

&lt;script&gt;
YUI().use( &quot;slider&quot;, function (Y) {

    var slider = new Y.Slider({
        thumbUrl: &#x27;&#x2F;path&#x2F;to&#x2F;new&#x2F;thumb.png&#x27;
    });

    slider.render(&quot;#slider-parent&quot;);

});
&lt;&#x2F;script&gt;</pre>


<h4 id="skins">Available skins</h4>

<p>
    Slider is provided with several alternate skins that can be applied by
    configuring a skin override in your YUI instance configuration.
</p>

<pre class="code prettyprint">YUI({
    skin: {
        overrides: {
            slider: [ &#x27;round-dark&#x27; ]
        }
    }
}).use( &quot;slider&quot;, ... );</pre>


<p>
    The available skins are each provided in a light and dark theme.  A few
    include optional thumbs or rails (for both light and dark).
</p>

<table>
<thead>
    <tr>
        <th>Skin class</th>
        <th>Visualization</th>
        <th>Optional</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td rowspan="2"><code>yui3-skin-sam</code></td>
        <td><img src="../assets/slider/images/sam.png" alt="Slider with Sam skin"></td>
        <td></td>
    </tr>
    <tr>
        <td><img src="../assets/slider/images/sam_lines.png" alt="Slider with Sam skin and alternate rail image"></td>
        <td>
            <code>rail-x-lines.png</code>
        </td>
    </tr>
    <tr>
        <td><code>yui3-skin-sam-dark</code></td>
        <td><img src="../assets/slider/images/sam_dark.png" alt="Slider with Dark Sam skin"></td>
        <td></td>
    </tr>
    <tr>
        <td rowspan="4"><code>yui3-skin-capsule</code></td>
        <td><img src="../assets/slider/images/capsule.png" alt="Slider with Capsule skin"></td>
        <td></td>
    </tr>
    <tr>
        <td><img src="../assets/slider/images/capsule_thumb.png" alt="Slider with Capsule skin and alternate thumb image"></td>
        <td>
            <code>thumb-x-line.png</code>
        </td>
    </tr>
    <tr>
        <td><img src="../assets/slider/images/capsule_dots.png" alt="Slider with Sam skin and alternate rail image"></td>
        <td>
            <code>rail-x-dots.png</code>
        </td>
    </tr>
    <tr>
        <td><img src="../assets/slider/images/capsule_lines.png" alt="Slider with Sam skin and alternate rail image"></td>
        <td>
            <code>rail-x-lines.png</code>
        </td>
    </tr>
    <tr>
        <td><code>yui3-skin-capsule-dark</code></td>
        <td><img src="../assets/slider/images/capsule_dark.png" alt="Slider with Dark Capsule skin"></td>
        <td></td>
    </tr>
    <tr>
        <td rowspan="2"><code>yui3-skin-round</code></td>
        <td><img src="../assets/slider/images/round.png" alt="Slider with Round skin"></td>
        <td></td>
    </tr>
    <tr>
        <td><img src="../assets/slider/images/round_thumb.png" alt="Slider with Round skin and alternate thumb image"></td>
        <td>
            <code>thumb-x-grip.png</code>
        </td>
    </tr>
    <tr>
        <td><code>yui3-skin-audio-light</code></td>
        <td><img src="../assets/slider/images/audio_light.png" alt="Slider with Light Audio skin"></td>
        <td></td>
    </tr>
    <tr>
        <td><code>yui3-skin-audio</code></td>
        <td><img src="../assets/slider/images/audio.png" alt="Slider with Audio skin"></td>
        <td></td>
    </tr>
</tbody>
</table>

<p>
    Here's an example illustrating using the capsule skin with provided
    alternate rail and thumb:
</p>

<pre class="code prettyprint">&lt;style type=&quot;text&#x2F;css&quot;&gt;
&#x2F;&#x2F; The rail and end cap images are shared in a sprite
.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail,
.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-left,
.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-right {
    background-image: url(&#x2F;path&#x2F;to&#x2F;build&#x2F;slider-base&#x2F;assets&#x2F;skins&#x2F;capsule&#x2F;rail-x-lines.png);
}
&lt;&#x2F;style&gt;

&lt;script&gt;
YUI({ skin: { overrides: { slider: [ &#x27;capsule&#x27; ] } } })
  .use( &quot;slider&quot;, function (Y) {

    var slider = new Y.Slider({
        axis    : &#x27;y&#x27;,
        min     : 1,
        max     : 5,
        value   : 3,
        length  : &#x27;100px&#x27;,
        thumbUrl: Y.config.base + &#x27;&#x2F;slider-base&#x2F;assets&#x2F;skins&#x2F;capsule&#x2F;thumb-x-line.png&#x27;
    });

    slider.render(&quot;#slider-parent&quot;);

});
&lt;&#x2F;script&gt;</pre>


<h4 id="skin_sprites">Skin image sprites</h4>

<p>
    To reduce the number of resource requests for Slider's visual treatment,
    the rail and end caps are combined into one image sprite, and thumb and
    shadow into another (examples shown below with borders added for
    clarity).
</p>

<style type="text/css">
    .sprite-example {
        border: 1px solid #d9d9d9;
    }
</style>

<img src="../assets/slider/images/thumb.png" alt="Thumb image sprite showing both thumb and shadow" class="sprite-example">

<p>
    Thumb and shadow sprite.  As noted <a href="#anatomy">above</a>, the thumb
    and shadow are both represented as <code>&lt;img&gt;</code>s in the DOM.
    This sprite allows both <code>&lt;img&gt;</code>s to reference the same
    <code>src</code> URL, but masked and positioned appropriately by the skin
    CSS.  Thumb image and shadow for vertical Sliders are set next to each
    other horizontally as shown. Horizontal Slider thumb sprites are stacked
    vertically.
</p>
<img src="../assets/slider/images/rail.png" alt="Rail sprite showing the repeatable rail and both end caps" class="sprite-example">

<p>
    Rail image (repeated across <code>length</code>), top cap, and bottom cap
    sprite.  This sprite is assigned in the skin CSS as the
    <code>background-image</code> for the rail element and the two end caps.
    The CSS <code>background</code> for the rail is set to repeat vertically or
    horizontally, relative to the Slider <code>axis</code>.  The image need be
    only as tall (vertical) or wide (horizontal) as the end caps unless the
    rail includes a more involved repeating section, such as the audio skin.
    End caps should be aligned against the top edge for vertical rails, or the
    left edge for horizontal rails.
</p>

<p>
    Standard heights and widths are used for the placement of the image bits
    within the sprites to allow for minimal differences between the CSS in one
    skin versus another.  This allows you to start from an existing skin and
    change very little of the CSS (potentially only swapping image URLs) to
    achieve a new look and feel.
</p>

<h3 id="extending">Extending Slider</h3>

<p>
    Slider is built up from a base implementation (<code>Y.SliderBase</code>)
    that has no notion of value.  It is just a draggable thumb on a rail.  The
    <code>slider-value-range</code> submodule provides an extension class that
    adds the attributes, API, and logic relating the thumb's position to a
    <code>value</code> within a <code>min</code>imum and <code>max</code>imum
    range.  Similarly, the <code>clickableRail</code> implementation is
    relegated to an extension class.  These classes are combined with
    <code>Y.Base.build</code> to generate the <code>Y.Slider</code> class.
</p>

<p>
    If you want to use a different value algorithm or decorate the basic Slider
    in other ways, you can write an extension class or <code>Y.extend</code> an
    existing extension class and create a new Slider implementation with
    <code>Y.Base.build</code>.
</p>

<pre class="code prettyprint">YUI().use( &quot;slider-base&quot;, function (Y) {

    &#x2F;&#x2F; Define a new extension class to calculate values differently
    function MyValueClass() {
        this._initValueAlgo();
    }

    &#x2F;&#x2F; Add attribute configuration and prototype to decorate the Slider
    Y.mix( MyValueClass, {
        
        ATTRS: { &#x2F;* new configuration attributes *&#x2F; },

        prototype: { &#x2F;* additional prototype members and methods *&#x2F; }
    });


    &#x2F;&#x2F; Combine SliderBase with the new extension class any others to
    &#x2F;&#x2F; create a new Slider
    Y.MySlider = Y.Base.build( &quot;slider&quot;, Y.SliderBase, [
        Y.ClickableRail,  &#x2F;&#x2F; Should also support rail clicks
        MyValueClass      &#x2F;&#x2F; Use the new value methods and attributes
    ] );


    &#x2F;&#x2F; Instantiate and use the new Slider class as you would Y.Slider
    var slider = new Y.MySlider({ &#x2F;* config *&#x2F; });

    slider.render( &quot;#slider-parent&quot; );

});</pre>

</div>
            </div>
        </div>

        <div class="yui3-u-1-4">
            <div class="sidebar">
                
                    <div id="toc" class="sidebox">
                        <div class="hd">
                            <h2 class="no-toc">Table of Contents</h2>
                        </div>

                        <div class="bd">
                            <ul class="toc">
<li>
<a href="#getting-started">Getting Started</a>
</li>
<li>
<a href="#using">Using Sliders</a>
<ul class="toc">
<li>
<a href="#anatomy">Anatomy of a Slider</a>
<ul class="toc">
<li>
<a href="#dom-structure">DOM structure</a>
</li>
<li>
<a href="#appearance">Appearance</a>
</li>
<li>
<a href="#thumb_placement">Thumb and end cap placement</a>
</li>
</ul>
</li>
<li>
<a href="#instantiating">Instantiating and configuring a Slider</a>
</li>
<li>
<a href="#value">Setting and constraining the Slider value</a>
<ul class="toc">
<li>
<a href="#setting-and-getting-slider-values">Setting and getting Slider values</a>
</li>
<li>
<a href="#min_max">Constraining Slider values</a>
</li>
<li>
<a href="#vert_min_max"><code>min</code> and <code>max</code> for vertical Sliders</a>
</li>
<li>
<a href="#hidden">Sync the UI if the Slider was rendered off the DOM</a>
</li>
</ul>
</li>
<li>
<a href="#events">Slider events</a>
</li>
<li>
<a href="#skinning">Skinning</a>
<ul class="toc">
<li>
<a href="#skin_thumbUrl">Using custom thumb or rail images</a>
</li>
<li>
<a href="#skins">Available skins</a>
</li>
<li>
<a href="#skin_sprites">Skin image sprites</a>
</li>
</ul>
</li>
<li>
<a href="#extending">Extending Slider</a>
</li>
</ul>
</li>
</ul>
                        </div>
                    </div>
                

                
                    <div class="sidebox">
                        <div class="hd">
                            <h2 class="no-toc">Examples</h2>
                        </div>

                        <div class="bd">
                            <ul class="examples">
                                
                                    
                                        <li data-description="The basics of setting up a horizontal and vertical Slider">
                                            <a href="slider-basic.html">Basic Sliders</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Creating a vertical Slider from existing markup">
                                            <a href="slider-from-markup.html">Creating a Slider from Existing Markup</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Specifying an alternate skin for a Slider instance">
                                            <a href="slider-skin.html">Alternate Skins</a>
                                        </li>
                                    
                                
                                    
                                
                                    
                                
                                    
                                
                                    
                                
                                    
                                
                                    
                                
                            </ul>
                        </div>
                    </div>
                

                
                    <div class="sidebox">
                        <div class="hd">
                            <h2 class="no-toc">Examples That Use This Component</h2>
                        </div>

                        <div class="bd">
                            <ul class="examples">
                                
                                    
                                
                                    
                                
                                    
                                
                                    
                                        <li data-description="Use three sliders to control RGB values and update Hex and HSL strings.">
                                            <a href="../color/rgb-slider.html">RGB Slider</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Use the HSL color picker to select a new color. Then chose the color type you like best.">
                                            <a href="../color/hsl-picker.html">HSL Color Picker</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Use the HSL color picker to create harmony colors.">
                                            <a href="../color/hsl-harmony.html">HSL Harmony</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Shows how to use Overlay&#x27;s constrainment support, to limit the XY value which can be set for an Overlay.">
                                            <a href="../overlay/overlay-constrain.html">Constrain Support</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Use StyleSheet to adjust the CSS rules applying a page theme from user input">
                                            <a href="../stylesheet/stylesheet-theme.html">Adjusting a Page Theme on the Fly</a>
                                        </li>
                                    
                                
                                    
                                        <li data-description="Example Photo Browser application.">
                                            <a href="../dd/photo-browser.html">Photo Browser</a>
                                        </li>
                                    
                                
                            </ul>
                        </div>
                    </div>
                
            </div>
        </div>
    </div>
</div>

<script src="../assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>

<script>
YUI.Env.Tests = {
    examples: [],
    project: '../assets',
    assets: '../assets/slider',
    name: 'slider',
    title: 'Slider',
    newWindow: '',
    auto:  false 
};
YUI.Env.Tests.examples.push('slider-basic');
YUI.Env.Tests.examples.push('slider-from-markup');
YUI.Env.Tests.examples.push('slider-skin');
YUI.Env.Tests.examples.push('rgb-slider');
YUI.Env.Tests.examples.push('hsl-picker');
YUI.Env.Tests.examples.push('hsl-harmony');
YUI.Env.Tests.examples.push('overlay-constrain');
YUI.Env.Tests.examples.push('stylesheet-theme');
YUI.Env.Tests.examples.push('photo-browser');

</script>
<script src="../assets/yui/test-runner.js"></script>



</body>
</html>