perf(NoticeBar): flip

This commit is contained in:
chenjiahan 2020-06-19 21:36:41 +08:00
parent 17d752f882
commit 02219625fb
3 changed files with 11 additions and 7 deletions

View File

@ -92,7 +92,7 @@ export default createComponent({
const contentHeight = `${offsetHeight}px`;
wrapper.style.height = expanded ? 0 : contentHeight;
// use double raf to ensure animation can start in mobile safari
// use double raf to ensure animation can start
doubleRaf(() => {
wrapper.style.height = expanded ? contentHeight : 0;
});

View File

@ -60,11 +60,15 @@ export default createComponent({
this.offset = this.wrapWidth;
this.duration = 0;
setTimeout(() => {
this.offset = -this.contentWidth;
this.duration = (this.contentWidth + this.wrapWidth) / this.speed;
this.$emit('replay');
}, 100);
// wait for Vue to render offset
this.$nextTick(() => {
// use double raf to ensure animation can start
doubleRaf(() => {
this.offset = -this.contentWidth;
this.duration = (this.contentWidth + this.wrapWidth) / this.speed;
this.$emit('replay');
});
});
},
reset() {

View File

@ -45,7 +45,7 @@ test('replay event', async () => {
});
wrapper.find('.van-notice-bar__content').trigger('transitionend');
await later(150);
await later(50);
expect(wrapper.emitted('replay')).toBeTruthy();
});