【发布时间】:2020-01-11 11:09:43
【问题描述】:
我有一个包含 3 个步骤的模态组件。在第一步中,我有一个没有循环的 gif(换句话说,gif 不是无限的 gif)。当我打开模态并返回第一步时,我希望 gif 重新启动动画并循环一次。
我的问题是:当我第一次显示 gif 时,浏览器下载 gif 并且 gif 工作正常,但之后浏览器从缓存中获取 gif 并且不会重新启动。因此,当我关闭模态框并再次打开或再次返回第一步时,就好像我有一张图像而不是 gif。
限制:我不能多次下载gif,所以不能放?a=${Math.random()强制gif再次循环播放。
我尝试了什么:
1) 当我不在第一步并且未打开模式时,我试图将 src 放在 img 标记中。当我在第一步并打开模式时,我将 gif 放在 img 标签的 src 中
2)我尝试做与第一次尝试相同的事情,但使用另一个 gif
3) 我尝试在模态组件中执行与尝试 1 和 2 相同的操作,并将 src 传递给 step children 组件
4) 当我不在第一步且模态未打开时,我试图从 DOM 中删除 img 标记
我的简化组件:
export class Modal extends React.PureComponent {
state = { step: FIRST_STEP }
render() {
{currentStep === FIRST_STEP && this.renderFirstStep()}
{currentStep === SECOND_STEP && this.renderSecondStep()}
}
renderFirstStep() {
return <FirstStep />
}
}
export class FirstStep extends React.Component {
render() {
return (
<img src={gif} alt='gif' />
)
}
}
提前致谢
【问题讨论】:
标签: javascript html css reactjs