用动画翻转3个文本

时间:2013-06-13 19:45:12

标签: javascript html css html5 css3

我的要求很小。我有一个带有三个带文字的子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);
  • 吉里贾

1 个答案:

答案 0 :(得分:1)

如果我理解得很好。我认为更简单的方法是使用MODULO,我写了这样的东西:

elementArr[counter%elementCount]

http://jsfiddle.net/t3N4A/

我认为你只需要尝试做位置:绝对;就像我改变不透明度一样,你应该改变它的左/上位置,改变setInterval函数的频率,使它更平滑,让它消失在你想要的地方。希望有所帮助。