Fade in letter by letter with JQuery -
i'm trying text of all_msg, , hide method hide , fade in 1 letter @ time, tiny delay, code.
var $all_msg = $('#welcome_msg'); function animate(i) { $all_msg.hide(); $all_msg.text.each(function(index) { $(this).delay(700 + index).fadein(1100); }) }
and console giving me back:
$all_msg.text.each not function
i'm new coder if can me give me major boost, thanks.
you need retrieve text .text()
, split delimiter of choice (space list of words, or empty string list of characters), create span each of items in list , append container on page(and fade them if want):
$(function() { //get welcome msg element var $all_msg = $('#welcome_msg'); //get list of letters welcome text var $wordlist = $('#welcome_msg').text().split(""); //clear welcome text msg $('#welcome_msg').text(""); //loop through letters in $wordlist array $.each($wordlist, function(idx, elem) { //create span letter , set opacity 0 var newel = $("<span/>").text(elem).css({ opacity: 0 }); //append welcome message newel.appendto($all_msg); //set delay on animation element newel.delay(idx * 70); //animate opacity full 1 newel.animate({ opacity: 1 }, 1100); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="welcome_msg">welcome example snippet</div>
update:
here snippet minds markup inside welcome text:
$(function() { //get welcome msg element var $all_msg = $('#welcome_msg'); //get list of letters welcome text var $wordlist = $('#welcome_msg').html().split(""); //clear welcome text msg $('#welcome_msg').html(""); //loop through letters in $wordlist array var taggoing = ""; $.each($wordlist, function(idx, elem) { if (elem == "<") { //if encountered symbol means tag started taggoing += elem; } else if (elem == ">") { //if encountered symbol means tag closed taggoing += elem; //create tag collected parts , append //to output html: var $foundtag = $(taggoing).appendto($all_msg); $foundtag.css({ opacity: 0 }); $foundtag.delay(idx * 70); $foundtag.animate({ opacity: 1 }, 1100); //reset tag collector: taggoing = ""; } else { //if inside tag if (taggoing != "") { //if inside tag, append //current character output html taggoing += elem; } else { //create span letter , set opacity 0 var newel = $("<span/>").text(elem).css({ opacity: 0 }); //append welcome message newel.appendto($all_msg); //set delay on animation element newel.delay(idx * 70); //animate opacity full 1 newel.animate({ opacity: 1 }, 1100); } } }); });
.banana { width: 100px; height: 100px; display: block; background: blue; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="welcome_msg">welcome <br/>example <div class="banana"></div>snippet</div>
Comments
Post a Comment