使用JQuery淡化单个字符

时间:2017-08-31 20:59:34

标签: jquery

用户可以在弹出窗口中输入带有提示的单词,然后字符串的字母必须一个接一个地出现和消失。

但现在只有字符串的最后一个字符会出现并消失。

var newHeadingText = prompt("Please provide a new heading:");          
for (var i = 0; i < newHeadingText.length; i++) {                    
    $("#main-heading").text(newHeadingText[i]).fadeOut(3000).fadeIn(3000);                
}

谢谢

1 个答案:

答案 0 :(得分:0)

您目前正在为每个循环重置getDriver().findElement(locator).sendKeys(Keys.chord("phone number formatted")); 的值,这种情况几乎是瞬间发生的。

相反,我建议使用.text()创建一个排序队列,第一个字母立即淡入,第二个字母在6秒超时后淡入,第三个字母在12秒超时等等。

我做出的其他改变:

  • 添加setTimeout以开始标题为&#34;隐藏&#34;
  • 反转.hide().fadeIn(),以便最后一个字母不会淡出,然后重新进入,然后再出来
  • 将计时器设置为fadeOut()(我们需要将其乘以2以补偿淡出的淡入淡出。我们将其乘以fadeTime * 2 * i,以便第一个从0开始,第二个在6000ms开始,第三个在1200ms开始,等等。)

最终产品看起来像这样:

&#13;
&#13;
i
&#13;
var fadeTime = 3000; //ms for fade-in, fade-out

var newHeadingText = prompt("Please provide a new heading:");
for (var i = 0; i < newHeadingText.length; i++) {
  fadeLetter(i);    //call our function with the current iteration
}

function fadeLetter(i) {
  setTimeout(      //Use setTimeout to queue fade animations
    function() {
      $("#main-heading").text(newHeadingText[i]).hide().fadeIn(fadeTime).fadeOut(fadeTime);
    }, fadeTime * 2 * i);
}
&#13;
&#13;
&#13;