我的要求很小。我有一个带有三个带文字的子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);
答案 0 :(得分:1)
如果我理解得很好。我认为更简单的方法是使用MODULO,我写了这样的东西:
elementArr[counter%elementCount]
我认为你只需要尝试做位置:绝对;就像我改变不透明度一样,你应该改变它的左/上位置,改变setInterval函数的频率,使它更平滑,让它消失在你想要的地方。希望有所帮助。