diff -r 322d0feea350 -r 89ef5ed3c48b src/cm/media/js/lib/yui/yui_3.10.3/docs/dial/duck.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui_3.10.3/docs/dial/duck.html Tue Jul 16 14:29:46 2013 +0200 @@ -0,0 +1,462 @@ + + + + + Example: Image Sprite Animation with Dial + + + + + + + + + + +
+
+

+
+ + +

Example: Image Sprite Animation with Dial

+
+
+
+
+

This example shows how to use a Dial widget to animate an image sprite.

+

Drag the Dial handle, or use the keyboard arrow keys to see the duck image "animate".

+
+ +
+ + + + +
+
+
+
+

Lot #562

+

Duck Decoy - Thomas Jefferson

+

+ Hand carved and signed by Thomas Jefferson. + circa 1785. Native hardwoods, stains, pigments. + Glass bead eyes. +

+

+ Opening bid $93,000 +

+
+
+ + + +
+ +

The Image Sprite

+

+ +

The Markup

+

The <div id="duck"></div> element will have the sprite as its background-image. +

The <div id="demo"></div> element will contain the dial.

+

+

+Note: be sure to add the yui3-skin-sam classname to the +page's <body> element or to a parent element of the widget in order to apply +the default CSS skin. See Understanding Skinning. +

+
<body class="yui3-skin-sam"> <!-- You need this skin class -->
+ + +
<div class="container">
+    <div id="duck"></div>
+    <div id="demo"></div>
+    <div id="text">
+        <h3>Lot #562</h3>
+        <h2>Duck Decoy - Thomas Jefferson</h2>
+        <p>
+            Hand carved and signed by Thomas Jefferson.
+            circa 1785. Native hardwoods, stains, pigments.
+            Glass bead eyes.
+        </p>
+        <p>
+            Opening bid $93,000
+        </p>
+    </div>    
+</div>
+ +

The JavaScript

+

The stepsPerRevolution attribute of the Dial +is given a value equal to the number of frames in the sprite. +

+

+On valueChange of the dial, the background-position of <div id="duck"> +is changed to a new multiple of the +width of one frame in the sprite. +

+
<script type="text/javascript">
+    YUI().use("dial", function(Y) {
+        var oneFrameWidth = 300,
+            framesInSprite = 13;
+        var dial = new Y.Dial({
+            min: 0,
+            max: 26000,
+            value: 13000, // initial value in the middle of a large range allows rotation both ways
+            minorStep: 1,
+            majorStep: 2,
+            stepsPerRevolution: framesInSprite,
+            diameter: 150
+        });
+        dial.render('#demo');
+        
+        // Reposition the duck sprite background image
+        dial.on( "valueChange", function(e){
+            // Handle values greater than one revolution
+            var moduloValue = (e.newVal % framesInSprite);
+             
+            Y.one('#duck').setStyle('backgroundPosition', (moduloValue * -oneFrameWidth) + 'px 0px');
+        }, '#duck' );
+    });
+</script>
+ +

Complete Example Source

+
<style>
+
+    .example {
+        background-color: #59554F;
+        text-align: center;
+    }
+
+    .example .container {
+        text-align: left;
+        position: relative;
+        width: 554px;
+        margin: 10px auto;
+        padding: 0;
+        font-family: georgia;
+    }
+
+    .example #demo {
+       position: absolute;
+       top: -10px;
+       left: 350px;
+    }
+
+    .example #duck {
+        width:300px;
+        height:188px;
+        background:url(../assets/dial/images/sprite_duck.jpg) no-repeat;
+        background-position: 0 0;
+        border:solid 1px #958A71;
+        -moz-box-shadow:7px 7px 10px rgba(0,0,0,0.3);
+        -webkit-box-shadow:7px 7px 10px rgba(0,0,0,0.3);
+        -moz-border-radius:3px;
+        -webkit-border-radius:3px;
+    }
+
+    .example .yui3-dial-label {
+        visibility:hidden;
+    }
+
+    .example .yui3-dial-north-mark {
+        visibility:hidden;
+    }
+
+    .example .yui3-skin-sam #demo .yui3-dial-ring {
+        -moz-box-shadow: 5px 5px 6px rgba(0, 0, 0, 0.3);
+        -webkit-box-shadow: 5px 5px 6px rgba(0, 0, 0, 0.3);
+    }
+    
+    .example #text {
+        color:#C5B291;
+    }
+
+    .example #text h2 {
+        font-size:261%;
+        color:#EEE5D6;
+        text-shadow: 2px 2px 7px #000;
+        margin: 0;
+        font-family: georgia;
+    }
+
+    .example #text h3 {
+        color:#EEE5D6;
+        font-size: 100%;
+        margin: 0.6em 0;
+        font-family: georgia;
+    }
+
+    .example #text p {
+        margin: 0.5em 0;
+        font-size:135%;
+        line-height: 1.2em;
+    }
+    
+</style>
+
+
+<div class="container">
+    <div id="duck"></div>
+    <div id="demo"></div>
+    <div id="text">
+        <h3>Lot #562</h3>
+        <h2>Duck Decoy - Thomas Jefferson</h2>
+        <p>
+            Hand carved and signed by Thomas Jefferson.
+            circa 1785. Native hardwoods, stains, pigments.
+            Glass bead eyes.
+        </p>
+        <p>
+            Opening bid $93,000
+        </p>
+    </div>    
+</div>
+
+<script type="text/javascript">
+    YUI().use("dial", function(Y) {
+        var oneFrameWidth = 300,
+            framesInSprite = 13;
+        var dial = new Y.Dial({
+            min: 0,
+            max: 26000,
+            value: 13000, // initial value in the middle of a large range allows rotation both ways
+            minorStep: 1,
+            majorStep: 2,
+            stepsPerRevolution: framesInSprite,
+            diameter: 150
+        });
+        dial.render('#demo');
+        
+        // Reposition the duck sprite background image
+        dial.on( "valueChange", function(e){
+            // Handle values greater than one revolution
+            var moduloValue = (e.newVal % framesInSprite);
+             
+            Y.one('#duck').setStyle('backgroundPosition', (moduloValue * -oneFrameWidth) + 'px 0px');
+        }, '#duck' );
+    });
+</script>
+ + +
+
+
+ +
+ +
+
+
+ + + + + + + + + + +