I am currently learning on my own some CSS & JS and i’m stuck on a part i really want to work on but have trouble finding the right answers online as there seem to be a tons of methods yet i couldn’t make any of them work.
Here is a snippet of what i have in mind :
let htmlcontent = `<p>It's me again!</p>`; function animation() { let content = document.getElementById("content"); content.innerHTML = ""; content.innerHTML = htmlcontent; }
#content p { font-size: 100px; }
<div id="content"> <p> Hello world! </p> </div> <button onclick="animation()"> Click here </button>
The idea is that when i click on the button, old content gets replaced by new HTML content and i want that new content to fade in from the right (a transition) every time i click the button.
I’m sorry if my question is bad/weird, english isn’t my primary language and i have no one else to ask at the moment. Thank you for your patience.
Advertisement
Answer
You could just make a CSS animation and play that whenever you click the button.
let htmlcontent = `<p>It's me again!</p>`; let content = document.getElementById("content"); function animation() { content.innerHTML = htmlcontent; content.classList.add("animate"); setTimeout(function() { content.classList.remove("animate"); }, 500); // 500 is the same time as the CSS animation }
#content p { font-size: 100px; } .animate { animation: fadeIn 500ms ease-out backwards; } @keyframes fadeIn { from { transform: translateX(250px); opacity: 0; } to { transform: translateX(0px); opacity: 1; } }
<div id="content"> <p> Hello world! </p> </div> <button onclick="animation()"> Click here </button>