我有一个小要求。我有一个包含三个带有文本的子 div 的 div。加载时,第一个文本将可见。 3 秒后,第一个隐藏,第二个可见。再过 3 秒后,第二个隐藏,第三个可见。这还在继续。
目前我没有任何关于一个跨度的隐藏和另一个跨度的显示的动画。所以它看起来有点模糊。我想要的白色是显示某种动画,因为它发生在 Windows 8 磁贴上。就像隐藏的文本应该向上滑动并消失,要显示的文本应该从底部滑入。动画应该给用户一个流畅的体验。
我没有使用任何动画库。这可以通过 javascript/css 实现吗?下面是我的代码。任何想法都会有用。
HTML:
<div class="dataflipping">
<div class="first">FIRST TEXT</div>
<div class="second">SECOND TEXT</div>
<div class="third">THIRD TEXT</div>
</div>
JavaScript:
var srcElement = document.getElementsByClassName("dataflipping");
var elementChld = srcElement.getElementsByTagName("div");
var elementArr = [];
for (counter === 0; counter < elementChld.length; counter++) {
elementArr.push(elementChld[counter]);
}
var elementCount = elementArray.length;
// Set all except first one to hidden initially
for (counter = 1; counter < elementCount; counter++) {
var ele = elementArray[counter];
ele.style.display = "none";
}
counter = 0;
setInterval(function () {
counter++;
var prevElement = null;
var curElement = null;
if (counter === 1) {
var prevElement = elementArr[elementCount - 1];
}
else {
prevElement = elementArr[counter - 2];
}
curElement = elementArr[counter - 1];
prevElement.style.display = "none";
curElement.style.display = "block";
if (counter === elementCount) {
counter = 0;
}
}, 3000);
- 吉里加
最佳答案
如果我理解得很好。我认为更简单的方法是使用 MODULO,我写了这样的东西:
elementArr[counter%elementCount]
我认为你只需要尝试 make position:absolute;就像我更改不透明度一样,您应该将其更改为左/顶部位置,更改 setInterval 函数的频率以使其更平滑并使其在您想要的位置消失。希望能有所帮助。
关于javascript - 用动画翻转 3 个文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17095700/