I want my <div>
to slowly become visible!
this is my code:
var Thread = {
sleep: function(ms) {
var start = Date.now();
while (true) {
var clock = (Date.now() - start);
if (clock >= ms) break;
}
}
};
function anime()
{
var elem = document.getElementById('tagd');
document.getElementById('tagd').style.opacity += 0.4;
console.log(document.getElementById('tagd').style.opacity);
Thread.sleep(1000);
document.getElementById('tagd').innerHTML ="<h1>Sometext</h1>";
console.log("do");
function frame()
{
num = 0.1;
elem.style.opacity += num;
}
}
it works, but when I change it to:
var Thread = {
sleep: function(ms) {
var start = Date.now();
while (true) {
var clock = (Date.now() - start);
if (clock >= ms) break;
}
}
};
function anime()
{
var elem = document.getElementById('tagd');
document.getElementById('tagd').style.opacity += 0.4;
console.log(document.getElementById('tagd').style.opacity);
Thread.sleep(1000);
document.getElementById('tagd').style.opacity += 0.4;
console.log(document.getElementById('tagd').style.opacity);
function frame()
{
num = 0.1;
elem.style.opacity += num;
}
}
or with setInterval
second time opacity
doesn't change!
seams, i cant change the opacity more than once..
html/css code below:
<html>
<style>
#tagd{
width: 500px;
height: 500px;
background: darkred;
opacity: 0;
}
</style>
<head>
<script src="test.js"></script>
</head>
<body>
<input type="button" onclick="anime()">
<div id="tagd"></div>
</body>
</html>
You can try using CSS transitions instead of JS. Make two CSS classes and change them using JS.
For example. CSS:
#tagd {
opacity: 0;
}
.visible {
-webkit-transition: opacity 3s ease-in-out;
-moz-transition: opacity 3s ease-in-out;
-ms-transition: opacity 3s ease-in-out;
-o-transition: opacity 3s ease-in-out;
opacity: 1!important;
}
JS:
function anime() {
var element = document.getElementById("tagd");
element.classList.toggle("visible");
}