Sorry, I spoke to soon on that.... I had to change it back to panel =
document.querySelector('paper-header-panel[main]') and then use a
setTimeout. There was no scroller at all when using the Polymer api query.
On Friday, December 25, 2015 at 3:55:05 PM UTC-6, Darin Hensley wrote:
>
> Thanks, I changed the code to use the polymer api for querying elements...
> but I am still having a race condition(in regards to the issue where I get
> "Uncaught TypeError: Cannot read property 'scroller' of undefined" for
> "panel.scroller.scrollTop =0". This expression comes from the
> function setUpRoutes();. I can use a setTimeout to compensate for it.
>
> function makeGlobalElements() {
> //elements is not routing list, routing list is elementList
> panel = Polymer.dom(parent).querySelector('paper-header-panel[main]');
> rippleElement = Polymer.dom(parent).querySelector('#ripple-element');
> toolbar = Polymer.dom(parent).querySelector('#main-toolbar');
> headerName = Polymer.dom(parent).querySelector('#name-title');
> drawer = Polymer.dom(parent).querySelector('paper-drawer-panel');
> mainPanelContent = Polymer.dom(parent).querySelector('#mainPanelContent'
> );
> };
>
>
> function attatchListeners() {
> panel.addEventListener("content-scroll", moveTitle);
> ['webkitAnimationEnd', 'animationend']
> .forEach(function(vendor) {
> mainPanelContent.addEventListener(vendor, function (animationEvent) {
> if (animationEvent.animationName === "slide-down") {
> afterSlideDown.runStack();
> mainPanelContent.classList.remove('slide-down-now');
> }
> });
> headerName.addEventListener(vendor, function() {
> headerName.classList.remove('fade-title');
> });
> });
> };
>
>
>
>
> function initializeYay() {
> makeGlobalElements();
> attatchListeners;
> setUpRoutes();
> removeSplash();
> //fetchPdfjs();
> }
>
>
> if (!webComponentsSupported) {
> document.addEventListener('WebComponentsReady', initializeYay);
> } else {
> initializeYay();
> page('/portfolio');
> }
>
>
>
>
>
>
> On Friday, December 25, 2015 at 9:37:55 AM UTC-6, Eric Bidelman wrote:
>>
>> You can attach listeners to elements before they're upgraded and ready.
>> That's a nice property of custom elements and DOM events. Waiting to attach
>> until WCR means you may miss the event the first time it's fired.
>>
>> On Thu, Dec 24, 2015, 10:32 PM Darin Hensley <[email protected]> wrote:
>>
>>> I am having issues(not consistent....random) where the elements are not
>>> ready when I attach the listeners. I placed a setTimeout to try and
>>> compensate the random race condition. Should these elements be ready during
>>> the time of their queries when WebComponentsReady fires or with the
>>> initialize.js script placed last at the bottom of the index.html?
>>> function makeGlobalElements() {
>>> //elements is not routing list, routing list is elementList
>>> panel = document.querySelector('paper-header-panel[main]');
>>> rippleElement = document.getElementById('ripple-element');
>>> toolbar = document.querySelector('#main-toolbar');
>>> headerName = document.getElementById('name-title');
>>> drawer = document.querySelector('paper-drawer-panel');
>>> mainPanelContent = document.getElementById('mainPanelContent');
>>> };
>>>
>>> function attatchListeners() {
>>> panel.addEventListener("content-scroll", moveTitle);
>>> ['webkitAnimationEnd', 'animationend']
>>> .forEach(function(vendor) {
>>> mainPanelContent.addEventListener(vendor, function (animationEvent) {
>>> if (animationEvent.animationName === "slide-down") {
>>> afterSlideDown.runStack();
>>> mainPanelContent.classList.remove('slide-down-now');
>>> }
>>> });
>>> headerName.addEventListener(vendor, function() {
>>> headerName.classList.remove('fade-title');
>>> });
>>> });
>>> };
>>>
>>>
>>> function initializeYay() {
>>> makeGlobalElements();
>>> setTimeout(attatchListeners, 500);
>>> setUpRoutes();
>>> removeSplash();
>>> //fetchPdfjs();
>>> }
>>>
>>> if (!webComponentsSupported) {
>>> document.addEventListener('WebComponentsReady', initializeYay);
>>> } else {
>>> initializeYay();
>>> page('/portfolio');
>>> }
>>>
>>>
>>>
>>>
>>> On Tuesday, December 22, 2015 at 9:44:05 PM UTC-6, Darin Hensley wrote:
>>>>
>>>> stack overflow post
>>>> <http://stackoverflow.com/questions/34428255/domcontentloaded-never-fires-can-not-use-webcomponentsready>
>>>>
>>>>
>>>> Using polymer 1.2.3,
>>>>
>>>>
>>>> In linux firefox 42.0, where the polyfill(webcomponents-lite.js) is
>>>> used:
>>>>
>>>>
>>>> `WebComponentsReady` fires to soon, because I `querySelect` and
>>>> `getElementById` elements that do not exist yet in `initialize`.
>>>>
>>>>
>>>> window.addEventListener('WebComponentsReady', function() {
>>>> initialize
>>>> .then(attatchListeners)
>>>>
>>>>
>>>> So I am using `DOMContentLoaded` but it never fires:
>>>>
>>>> document.addEventListener('DOMContentLoaded', function() {
>>>> initialize
>>>> .then(attatchListeners)
>>>>
>>>>
>>>>
>>>> Any ideas on how to make initialize run when the elements are available
>>>> for `querySelect()`?
>>>>
>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Polymer" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/polymer-dev/13dcb312-f0a9-44d5-bf55-29be4cd38441%40googlegroups.com
>>>
>>> <https://groups.google.com/d/msgid/polymer-dev/13dcb312-f0a9-44d5-bf55-29be4cd38441%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
Follow Polymer on Google+: plus.google.com/107187849809354688692
---
You received this message because you are subscribed to the Google Groups
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/polymer-dev/12f7b600-1c4e-4555-baf9-bbfa048f7dee%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.