javascript - 再次显示后加载点动画失真
问题描述
我正在使用 TweenMax(gasp 的旧版本)为简单的加载点设置动画:
function hideDots(){
const dots = document.querySelector('.dotContainer');
dots.style.opacity = 0;
dots.addEventListener('transitionend', hideDotsAnime);
function hideDotsAnime() {
dots.style.display = "none";
dots.removeEventListener("transitionend", hideDotsAnime);
}
}
function showDots(){
TweenMax.staggerTo(".dots",2,{x:220,backgroundColor:'white',repeat:-1,ease:SlowMo.ease.config(0.5,0.4,false)},0.4);
TweenMax.staggerFrom(".dots",2,{opacity:0,scale:0.7,repeat:-1,ease:SlowMo.ease.config(0.5,0.4,true)},0.4);
const dots = document.querySelector('.dotContainer');
dots.style.display = "block";
setTimeout(() => dots.style.opacity = 0.75, 200);
}
setTimeout(() => showDots(), 2500);
setTimeout(() => hideDots(), 5900);
setTimeout(() => showDots(), 10000);
body{
background-color: black
}
.dotContainer {
background-color: transparent;
position: absolute;
top: 60vh;
left: 42vw;
transform: translate(-50%,-50%);
display: none;
transition: all 0.5s linear;
z-index: 11;
}
.dots {
position: absolute;
width: 1em;
height: 1em;
border-radius: 50%;
background-color: #e2daeb;
opacity: 0.8;
}
<script SRC="https://langfox.ir/english/TweenMax.min.js" TYPE="text/javascript"></script>
<div class="dotContainer">
<div class="dots"></div>
<div class="dots"></div>
<div class="dots"></div>
<div class="dots"></div>
<div class="dots"></div>
</div>
正如您第一次看到的那样,显示和隐藏这些点效果很好。但问题是,当我们再次显示这些点时,会发生失真,并且我们不再拥有那些精美的动画点,现在它们彼此关闭并且......
我怎样才能解决这个问题?
解决方案
推荐阅读
- javascript - 单击添加更多按钮后如何从文本框中获取多个值?
- c# - 如何使用 C# 中的 Lambda 表达式仅返回没有来自另一个表的行的行
- asp.net-core-2.1 - 如何阻止特定国家访问我的网站?.Net 核心
- r - 如何通过子字符串优雅地拆分列表元素中的字符串数组?
- java - 如何知道第一个或当前屏幕/页面的最后一个 recyclerView 项目已加载,任何回调但被调用一次?
- node.js - 在同一台服务器和不同域上运行 Node.Js 和 Apache
- python - ggplot 总结 y 轴上分类变量的平均值
- vb.net - 在 VB .net 中使用 UTF-8 处理 ä,ö,ü 等
- macos - mac 的 SSH 设置以创建别名
- javascript - 使用 JavaScript 将外部 JSON 文件中的数据提取到 innerHTML 表中