Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Side by Side Diff: chrome/browser/resources/print_preview/print_preview_animations.js

Issue 477133004: Printe Preview: add 'More/less options' button and make non-essential sections collapsible (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Print Preview UI tests adjusted. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Counter used to give webkit animations unique names. 5 // Counter used to give webkit animations unique names.
6 var animationCounter = 0; 6 var animationCounter = 0;
7 7
8 var animationEventTracker_ = new EventTracker(); 8 var animationEventTracker_ = new EventTracker();
9 9
10 function addAnimation(code) { 10 function addAnimation(code) {
(...skipping 25 matching lines...) Expand all
36 /** 36 /**
37 * Fades in an element. Used for both printing options and error messages 37 * Fades in an element. Used for both printing options and error messages
38 * appearing underneath the textfields. 38 * appearing underneath the textfields.
39 * @param {HTMLElement} el The element to be faded in. 39 * @param {HTMLElement} el The element to be faded in.
40 */ 40 */
41 function fadeInElement(el) { 41 function fadeInElement(el) {
42 if (el.classList.contains('visible')) 42 if (el.classList.contains('visible'))
43 return; 43 return;
44 el.classList.remove('closing'); 44 el.classList.remove('closing');
45 el.hidden = false; 45 el.hidden = false;
46 el.setAttribute('aria-hidden', 'false');
46 el.style.height = 'auto'; 47 el.style.height = 'auto';
47 var height = el.offsetHeight; 48 var height = el.offsetHeight;
48 el.style.height = height + 'px'; 49 el.style.height = height + 'px';
49 var animName = addAnimation(getFadeInAnimationCode(height)); 50 var animName = addAnimation(getFadeInAnimationCode(height));
50 animationEventTracker_.add( 51 animationEventTracker_.add(
51 el, 'webkitAnimationEnd', onFadeInAnimationEnd.bind(el), false); 52 el, 'webkitAnimationEnd', onFadeInAnimationEnd.bind(el), false);
52 el.style.webkitAnimationName = animName; 53 el.style.webkitAnimationName = animName;
53 el.classList.add('visible'); 54 el.classList.add('visible');
54 } 55 }
55 56
56 /** 57 /**
57 * Fades out an element. Used for both printing options and error messages 58 * Fades out an element. Used for both printing options and error messages
58 * appearing underneath the textfields. 59 * appearing underneath the textfields.
59 * @param {HTMLElement} el The element to be faded out. 60 * @param {HTMLElement} el The element to be faded out.
60 */ 61 */
61 function fadeOutElement(el) { 62 function fadeOutElement(el) {
62 if (!el.classList.contains('visible')) 63 if (!el.classList.contains('visible'))
63 return; 64 return;
64 fadeInAnimationCleanup(el); 65 fadeInAnimationCleanup(el);
65 el.style.height = 'auto'; 66 el.style.height = 'auto';
66 var height = el.offsetHeight; 67 var height = el.offsetHeight;
67 el.style.height = height + 'px'; 68 el.style.height = height + 'px';
68 el.offsetHeight; // Should force an update of the computed style. 69 el.offsetHeight; // Should force an update of the computed style.
69 animationEventTracker_.add( 70 animationEventTracker_.add(
70 el, 'webkitTransitionEnd', onFadeOutTransitionEnd.bind(el), false); 71 el, 'webkitTransitionEnd', onFadeOutTransitionEnd.bind(el), false);
71 el.classList.add('closing'); 72 el.classList.add('closing');
72 el.classList.remove('visible'); 73 el.classList.remove('visible');
74 el.setAttribute('aria-hidden', 'true');
73 } 75 }
74 76
75 /** 77 /**
76 * Executes when a fade out animation ends. 78 * Executes when a fade out animation ends.
77 * @param {WebkitTransitionEvent} event The event that triggered this listener. 79 * @param {WebkitTransitionEvent} event The event that triggered this listener.
78 * @this {HTMLElement} The element where the transition occurred. 80 * @this {HTMLElement} The element where the transition occurred.
79 */ 81 */
80 function onFadeOutTransitionEnd(event) { 82 function onFadeOutTransitionEnd(event) {
81 if (event.propertyName != 'height') 83 if (event.propertyName != 'height')
82 return; 84 return;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 while (el.childNodes.length > 0) 171 while (el.childNodes.length > 0)
170 div.appendChild(el.firstChild); 172 div.appendChild(el.firstChild);
171 el.appendChild(div); 173 el.appendChild(div);
172 } 174 }
173 175
174 div.className = ''; 176 div.className = '';
175 div.classList.add('collapsible'); 177 div.classList.add('collapsible');
176 for (var i = 0; i < classes.length; i++) 178 for (var i = 0; i < classes.length; i++)
177 div.classList.add(classes[i]); 179 div.classList.add(classes[i]);
178 } 180 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698