- 51
- 0
同一个滚动效果,用js的requestAnimationFrame控制返回初始态非常自然,没有痕迹,但是用css animation控制,则回到第一帧,会有明显的下移动作,这个问题能否解决?在线demo关键代码如下:css animation版本:.m-tb-scroll tbody{display:block}.m-tb-scroll tbody.scroll{height:850px;overflow:hidden;overflow-y:scroll}.m-tb-scroll thead,.m-tb-scroll tbody tr{display:table;width:100%;table-layout:fixed}.m-tb-scroll tbody.ani{ animation:scroll var(--scrollDuration) linear both infinite; animation-play-state:var(--scrollPause)}@keyframes scroll{ 0%{transform:translateY(var(--scrollTopDebounce))} 100%{transform:translateY(var(--scrollY))}}if(scroll > 10){ scroll += this.bottomDebounce; target.classList.remove('scroll'); target.classList.add('ani'); console.log('scroll: ', scroll); let scrollDuration = scroll/60; document.body.style.setProperty('--scrollDuration', `${scrollDuration}s`); document.body.style.setProperty('--scrollY', `-${scroll}px`); document.body.style.setProperty('--scrollTopDebounce', `${this.topDebounce}px`); this.setAnimationPause();}else{ target.classList.remove('ani');}js版本if (scroll > 10) { target.classList.remove('scroll'); requestAnimationFrame(animate); let step = 0; function animate() { if (self.stop) return; console.log('puase: ', self.pause); if(!self.pause){ if (step >= scroll) { step = 0; } else { step += 1; } target.style.transform = `translateY(-${step}px)` } requestAnimationFrame(animate); }} else { self.stop = true; target.style.transform = `translateY(0)`}
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

