Remove LOAD_SUB_FRAME load flag.
[chromium-blink-merge.git] / third_party / polymer / components / core-transition / core-transition.html
blobc5728850871cbf775fc7d0f2181861191c716204
1 <!--
2 Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
3 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
4 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
5 The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
6 Code distributed by Google as part of the polymer project is also
7 subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
8 -->
10 <!--
12 `<core-transition>` is an abstraction of an animation. It is used to implement pluggable
13 transitions, for example in `<core-overlay>`. You can extend this class to create a custom
14 animation, instantiate it, and import it where you need the animation.
16 All instances of `<core-transition>` are stored in a single database with `type=transition`.
17 For more about the database, please see the documentation for `<core-meta>`.
19 Each instance of `<core-transition>` objects are shared across all the clients, so you should
20 not store state information specific to the animated element in the transition. Rather, store
21 it on the element.
23 Example:
25 my-transition.html:
27 <polymer-element name="my-transition" extends="core-transition">
28 <script>
29 go: function(node) {
30 node.style.transition = 'opacity 1s ease-out';
31 node.style.opacity = 0;
33 </script>
34 </polymer-element>
36 <my-transition id="my-fade-out"></my-transition>
38 my-transition-demo.html:
40 <link href="components/core-meta/core-meta.html" rel="import">
41 <link href="my-transition.html" rel="import">
43 <div id="animate-me"></div>
45 <script>
46 // Get the core-transition
47 var meta = document.createElement('core-meta');
48 meta.type = 'transition';
49 var transition = meta.byId('my-fade-out');
51 // Run the animation
52 var animated = document.getElementById('animate-me');
53 transition.go(animated);
54 </script>
56 @group Polymer Core Elements
57 @element core-transition
58 @extends core-meta
59 @status beta
60 @homepage github.io
61 -->
62 <!--
63 Fired when the animation finishes.
65 @event core-transitionend
66 @param {Object} detail
67 @param {Object} detail.node The animated node
68 -->
70 <link rel="import" href="../core-meta/core-meta.html">
72 <polymer-element name="core-transition" extends="core-meta">
74 <script>
75 Polymer('core-transition', {
77 type: 'transition',
79 /**
80 * Run the animation.
82 * @method go
83 * @param {Node} node The node to apply the animation on
84 * @param {Object} state State info
86 go: function(node, state) {
87 this.complete(node);
90 /**
91 * Set up the animation. This may include injecting a stylesheet,
92 * applying styles, creating a web animations object, etc.. This
94 * @method setup
95 * @param {Node} node The animated node
97 setup: function(node) {
101 * Tear down the animation.
103 * @method teardown
104 * @param {Node} node The animated node
106 teardown: function(node) {
110 * Called when the animation completes. This function also fires the
111 * `core-transitionend` event.
113 * @method complete
114 * @param {Node} node The animated node
116 complete: function(node) {
117 this.fire('core-transitionend', null, node);
121 * Utility function to listen to an event on a node once.
123 * @method listenOnce
124 * @param {Node} node The animated node
125 * @param {string} event Name of an event
126 * @param {Function} fn Event handler
127 * @param {Array} args Additional arguments to pass to `fn`
129 listenOnce: function(node, event, fn, args) {
130 var self = this;
131 var listener = function() {
132 fn.apply(self, args);
133 node.removeEventListener(event, listener, false);
135 node.addEventListener(event, listener, false);
139 </script>
140 </polymer-element>