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 |