| <!DOCTYPE html> |
| <html> |
| <!-- |
| Copyright 2010 The Closure Library Authors. All Rights Reserved. |
| |
| Use of this source code is governed by the Apache License, Version 2.0. |
| See the COPYING file for details. |
| --> |
| <head> |
| <title>goog.fx.dom</title> |
| <script src="../base.js"></script> |
| <script> |
| goog.require('goog.events'); |
| goog.require('goog.fx'); |
| goog.require('goog.fx.dom'); |
| </script> |
| <link rel="stylesheet" href="css/demo.css"> |
| <style> |
| #test1 { |
| position: absolute; |
| left: 150px; |
| top: 100px; |
| width: 20px; |
| height: 20px; |
| background-color: rgb(0,0,0); |
| } |
| |
| button { |
| font: normal 10px arial; |
| width: 125px; |
| } |
| </style> |
| </head> |
| <body> |
| <h1>goog.fx.dom</h1> |
| <p><strong>Demonstrations of the goog.fx.dom library</strong></p> |
| |
| <p> |
| <button id="but0" onclick="slide(0, 0);">Slide To 0x0</button><br> |
| <button id="but1" onclick="slide(400, 40);">Slide To 400x40</button><br> |
| <button id="but2" onclick="slide(300, 200);">Slide To 300x200</button><br> |
| <button id="but3" onclick="slide(600, 100);">Slide To 600x100</button> |
| </p> |
| |
| <p> |
| <button id="but4" onclick="resize(50, 50);">Resize To 50x50</button><br> |
| <button id="but5" onclick="resize(250, 50);">Resize To 250x50</button><br> |
| <button id="but6" onclick="resize(5, 5);">Resize To 5x5</button><br> |
| <button id="but7" onclick="resize(250, 250);">Resize To 250x250</button><br> |
| <button id="but8" onclick="resize(1250, 1250);">Resize To 1250x1250</button> |
| </p> |
| |
| <p> |
| <button id="but9" onclick="fadeout();">Fade Out</button><br> |
| <button id="but10" onclick="fadein();">Fade In</button> |
| </p> |
| |
| <p> |
| <button id="but11" onclick="color(200, 0, 0);">Transform to red</button><br> |
| <button id="but12" onclick="color(180, 180, 180);">Transform to grey</button><br> |
| <button id="but13" onclick="color(0, 0, 0);">Transform to black</button><br> |
| <button id="but14" onclick="color(100, 100, 255);">Transform to blue</button> |
| </p> |
| |
| <p> |
| <button id="but15" onclick="toggleRequestAnimationFrame();"></button> |
| <p> |
| |
| |
| <div id="test1"><!-- This comment is an IE6 hack to fix height:20px --></div> |
| |
| <script> |
| var col = [0, 0, 0]; |
| var duration = 1000; |
| |
| var el = document.getElementById('test1'); |
| |
| /** |
| * Enables all buttons then disposes of the animation. |
| * @param {!goog.events.Event} e goog.fx.Transition.EventType.END event with |
| * the goog.fx.Animation object in its target. |
| */ |
| function enableButtons(e) { |
| for (var i = 0; i <= 15; i++) { |
| document.getElementById('but' + i).disabled = false; |
| } |
| e.target.dispose(); |
| } |
| |
| function disableButtons() { |
| for (var i = 0; i <= 15; i++) { |
| document.getElementById('but' + i).disabled = true; |
| } |
| } |
| |
| function slide(a, b) { |
| var x = el.offsetLeft; |
| var y = el.offsetTop; |
| var anim = new goog.fx.dom.Slide(el, [x, y], [a, b], duration, |
| goog.fx.easing.easeOut); |
| goog.events.listen(anim, goog.fx.Transition.EventType.BEGIN, |
| disableButtons); |
| goog.events.listen(anim, goog.fx.Transition.EventType.END, enableButtons); |
| anim.play(); |
| } |
| |
| function resize(a, b) { |
| var w = el.offsetWidth; |
| var h = el.offsetHeight; |
| var anim = new goog.fx.dom.Resize(el, [w, h], [a, b], duration, |
| goog.fx.easing.easeOut); |
| goog.events.listen(anim, goog.fx.Transition.EventType.BEGIN, |
| disableButtons); |
| goog.events.listen(anim, goog.fx.Transition.EventType.END, enableButtons); |
| anim.play(); |
| } |
| |
| function fadeout() { |
| var anim = new goog.fx.dom.FadeOutAndHide(el, duration); |
| goog.events.listen(anim, goog.fx.Transition.EventType.BEGIN, |
| disableButtons); |
| goog.events.listen(anim, goog.fx.Transition.EventType.END, enableButtons); |
| anim.play(); |
| } |
| |
| function fadein() { |
| var anim = new goog.fx.dom.FadeInAndShow(el, duration); |
| goog.events.listen(anim, goog.fx.Transition.EventType.BEGIN, |
| disableButtons); |
| goog.events.listen(anim, goog.fx.Transition.EventType.END, enableButtons); |
| anim.play(); |
| } |
| |
| function color(r, g, b) { |
| var anim = new goog.fx.dom.BgColorTransform(el, col, [r, g, b], duration); |
| goog.events.listen(anim, goog.fx.Transition.EventType.BEGIN, |
| disableButtons); |
| goog.events.listen(anim, goog.fx.Transition.EventType.END, function(e) { |
| col = [e.x, e.y, e.z]; |
| enableButtons(); |
| }); |
| anim.play(); |
| } |
| |
| function toggleRequestAnimationFrame() { |
| rafEnabled = !rafEnabled; |
| goog.fx.Animation.setAnimationWindow(rafEnabled ? window : null); |
| updateRafButton(); |
| } |
| |
| function updateRafButton() { |
| goog.dom.setTextContent(goog.dom.getElement('but15'), |
| rafEnabled ? |
| 'Disable timing control API' : 'Enable timing control API'); |
| } |
| |
| goog.fx.Animation.setAnimationWindow(window); |
| var rafEnabled = goog.fx.Animation.animationWindow_; |
| updateRafButton(); |
| </script> |
| </body> |
| </html> |