cms/app-client/app/components/transcript-component.js
changeset 345 4b66390442fd
parent 257 eba9edbd8f46
child 347 9779512454af
equal deleted inserted replaced
344:70451a4dc9ae 345:4b66390442fd
     4 
     4 
     5     classNames: ['transcript-component'],
     5     classNames: ['transcript-component'],
     6 
     6 
     7     player: Ember.inject.service(),
     7     player: Ember.inject.service(),
     8 
     8 
       
     9     autoscrollElement : '.corpus-app-container',
       
    10     previousElement: 0,
     9     autoscroll: true,
    11     autoscroll: true,
    10     autoscrollElement : '.corpus-app-container',
       
    11     timeout: null,
    12     timeout: null,
    12 
    13 
    13     itemObserver: Ember.observer('player.item', function () {
    14     itemObserver: Ember.observer('player.item', function () {
    14         this.set('autoscroll', true);
    15         this.set('autoscroll', true);
    15     }),
    16     }),
    16 
    17 
       
    18     didInsertElement: function() {
       
    19         Ember.$('#' + this.elementId).parent().on('scroll', Ember.run.bind(this, this.onScroll));
       
    20     },
       
    21 
       
    22     onScroll: function() {
       
    23         this.set('autoscroll', false);
       
    24         Ember.$('#' + this.elementId).parent().off('scroll');
       
    25     },
       
    26 
    17     didUpdate: function() {
    27     didUpdate: function() {
       
    28         var self = this;
    18         var target = Ember.$('.sentence.active');
    29         var target = Ember.$('.sentence.active');
    19         if(this.get('autoscroll') && target.length) {
    30         if(this.get('autoscroll') && target.length && target.attr('data-ember-action') !== this.get('previousElement')) {
       
    31             Ember.$('#' + self.elementId).parent().off('scroll');
    20             Ember.$(this.get('autoscrollElement')).animate({
    32             Ember.$(this.get('autoscrollElement')).animate({
    21                 scrollTop: target.offset().top + Ember.$(this.get('autoscrollElement')).scrollTop() - Ember.$(this.get('autoscrollElement')).offset().top - 154
    33                 scrollTop: target.offset().top + Ember.$(this.get('autoscrollElement')).scrollTop() - Ember.$(this.get('autoscrollElement')).offset().top - 154
    22             }, 150);
    34             }, 150, 'swing', function() {
       
    35                 setTimeout(function() {
       
    36                     Ember.$('#' + self.elementId).parent().on('scroll', Ember.run.bind(self, self.onScroll));
       
    37                 }, 100);
       
    38             });
       
    39             this.set('previousElement', target.attr('data-ember-action'))
    23         }
    40         }
    24     },
    41     },
    25 
    42 
    26     actions: {
    43     actions: {
    27 
    44