This is the demo about creating the multiple HTML textarea dynamically with CSS animations. Animations are covered fading, Sliding and Swing options and removing the textarea is also covered in this demo. Demo is written in plain JavaScript without any dependency and animations using CSS3.
Create and remove the TextArea Using javascript with Animations
Below you can find the steps to achieve the demo
CSS: Fade Effect
.fadeit div{
transition: all 0.4s ease-out;
opacity: 0;
}
.fadeit div.show {
opacity: 1;
}
CSS: Slide Fade Effect
.slide-fade div{
transition: all 0.4s ease-out;
opacity: 0;
}
.slide-fade div.show {
opacity: 1;
}
CSS: Swing X & Swing Y Effect
.swingX,.swingY {
perspective: 200px;
}
.swingX div {
opacity: 0;
transform: rotateX(-90deg);
transition: all 0.5s cubic-bezier(.36,-0.64,.34,1.76);
}
.swingY div {
opacity: 0;
transform: rotateY(-90deg);
transition: all 0.5s cubic-bezier(.36,-0.64,.34,1.76);
}
.swingX div.show,.swingY div.show {
opacity: 1;
transform: none;
transition: all 0.5s cubic-bezier(.36,-0.64,.34,1.76);
}
JavaScript: Add & Remove the textarea
Add textarea JS
function addElement(elId,e) {
var holder = document.getElementById(elId),
num = e.currentTarget.dataset.count++,
divIdName = elId + num,
newdiv = document.createElement('div');
newdiv.setAttribute("id", divIdName);
newdiv.innerHTML = "<textarea class=\"form-control\" name=\"text" + num + "\"></textarea><a href=\"javascript:;\" onclick=\"removeElement(\'" + divIdName + "\',\'" + elId + "\')\">Remove</a>";
holder.appendChild(newdiv);
setTimeout(function() {
newdiv.className += "show";
}, 10);
}
Remove textarea JS
function removeElement(divNum,elId) {
var holder = document.getElementById(elId);
var olddiv = document.getElementById(divNum);
olddiv.className = "";
setTimeout(function() {
holder.removeChild(olddiv);
}, 600);
}
HTML Code
<!-- Fading effect -->
<h2>Fading effect</h2>
<p><a data-count="0" onclick="addElement('fadeit',event);">Add</a></p>
<div class="fadeit" id="fadeit"></div>
<!-- Slide-fade effect -->
<h2>Slide-fade effect</h2>
<p><a data-count="0" onclick="addElement('slide-fade',event);">Add</a></p>
<div class="slide-fade" id="slide-fade"></div>
<!-- SwingX effect effect -->
<h2>SwingX effect</h2>
<p><a data-count="0" onclick="addElement('swingX',event);">Add</a></p>
<div class="swingX" id="swingX"></div>
<!-- SwingY effect effect -->
<h2>SwingY effect</h2>
<p><a data-count="0" onclick="addElement('swingY',event);">Add</a></p>
<div class="swingY" id="swingY"></div>
Leave a Reply