Skip to content

Commit 78fc8d6

Browse files
committed
component.MagicMoveText: transitionTime_ config #6475
1 parent f6bacb0 commit 78fc8d6

3 files changed

Lines changed: 33 additions & 9 deletions

File tree

examples/component/magicmovetext/MainContainer.mjs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,28 +39,33 @@ class MainContainer extends ConfigurationViewport {
3939
module : TextField,
4040
labelText: 'colorFadeIn',
4141
listeners: {change: me.onConfigChange.bind(me, 'colorFadeIn')},
42-
style : {marginTop: '10px'},
4342
value : exampleComponent.colorFadeIn
4443
}, {
4544
module : TextField,
4645
labelText: 'colorFadeOut',
4746
listeners: {change: me.onConfigChange.bind(me, 'colorFadeOut')},
48-
style : {marginTop: '10px'},
4947
value : exampleComponent.colorFadeOut
5048
}, {
5149
module : TextField,
5250
labelText: 'colorMove',
5351
listeners: {change: me.onConfigChange.bind(me, 'colorMove')},
54-
style : {marginTop: '10px'},
5552
value : exampleComponent.colorMove
5653
}, {
5754
module : TextField,
5855
clearable: false,
5956
labelText: 'fontFamily',
6057
listeners: {change: me.onConfigChange.bind(me, 'fontFamily')},
61-
style : {marginTop: '10px'},
6258
value : exampleComponent.fontFamily,
6359
width : 300
60+
}, {
61+
module : NumberField,
62+
clearable: false,
63+
labelText: 'transitionTime',
64+
listeners: {change: me.onConfigChange.bind(me, 'transitionTime')},
65+
maxValue : 900,
66+
minValue : 50,
67+
stepSize : 50,
68+
value : exampleComponent.transitionTime
6469
}]
6570
}
6671

resources/scss/src/component/MagicMoveText.scss

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.neo-magic-move-text {
2-
--neo-height: 100px;
3-
--neo-width : 450px;
2+
--neo-height : 100px;
3+
--neo-transition-time: 500ms;
4+
--neo-width : 450px;
45

56
align-items : center;
67
background-color: #000;
@@ -19,7 +20,10 @@
1920

2021
> * {
2122
position : absolute;
22-
transition: color .5s ease-out, left .5s ease-out, opacity .5s ease-out;
23+
transition:
24+
color 0.2s ease-out,
25+
left var(--neo-transition-time) ease-out,
26+
opacity var(--neo-transition-time) ease-out;
2327
}
2428
}
2529

src/component/MagicMoveText.mjs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ class MagicMoveText extends Component {
5353
* @member {String} text_=null
5454
*/
5555
text_: null,
56+
/**
57+
* Time in ms for the fadeIn, fadeOut and move character OPs
58+
* @member {Number} transitionTime_=500
59+
*/
60+
transitionTime_: 500,
5661
/**
5762
* @member {Object} _vdom
5863
*/
@@ -160,6 +165,17 @@ class MagicMoveText extends Component {
160165
}
161166
}
162167

168+
/**
169+
* Triggered after the transitionTime config got changed
170+
* @param {Number} value
171+
* @param {Number} oldValue
172+
* @protected
173+
*/
174+
afterSetTransitionTime(value, oldValue) {
175+
this.vdom.style['--neo-transition-time'] = value + 'ms';
176+
this.update()
177+
}
178+
163179
async measureChars() {
164180
let me = this,
165181
{measureElement} = me,
@@ -235,7 +251,6 @@ class MagicMoveText extends Component {
235251
});
236252

237253
await me.promiseUpdate();
238-
await me.timeout(20);
239254

240255
charsContainer.forEach(charNode => {
241256
if (charNode.flag === 'remove') {
@@ -247,7 +262,7 @@ class MagicMoveText extends Component {
247262
});
248263

249264
await me.promiseUpdate();
250-
await me.timeout(500);
265+
await me.timeout(me.transitionTime);
251266

252267
charsContainer.sort((a, b) => parseFloat(a.style.left) - parseFloat(b.style.left));
253268

0 commit comments

Comments
 (0)