var img_array = ["bomb.gif", "frown.gif", "grim.gif", "smile.gif"];
setInterval(function randomImages () {
var randomImage = img_array[Math.floor(Math.random()*img_array.length)];
var imgNode = document.querySelector("#showRandom");
imgNode.classList.remove('random');
imgNode.classList.add('transitioning-src');
setTimeout(() => {
imgNode.src = randomImage;
imgNode.classList.remove('transitioning-src');
imgNode.classList.add('random');
}, 400);
document.querySelector(".imgsrc").value = randomImage;
}, 3000);
.transitioning-src {
transition: opacity .4s ease-out;
-webkit-transition: opacity .4s ease-out;
-moz-transition: opacity .4s ease-out;
-ms-transition: opacity .4s ease-out;
-o-transition: opacity .4s ease-out;
opacity: 0;
}
#showRandom {
height: 200px;
width: 300px;
border: 1px solid black;
}
.random{
transition: opacity .4s ease-in;
-webkit-transition: opacity .4s ease-in;
-moz-transition: opacity .4s ease-in;
-ms-transition: opacity .4s ease-in;
-o-transition: opacity .4s ease-in;
opacity: 1;
}
<input type="text" class="imgsrc"/><br />
<img src="avatar.png" id="showRandom" class="random" alt="" />
В функции init используйте эти две строки:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
И в Вашей функции рендеринга, гарантируйте это glColor4f
используется вместо glColor3f
, и набор 4-й аргумент уровню непрозрачности требуется.
glColor4f(1.0, 1.0, 1.0, 0.5);
glBegin(GL_QUADS);
glVertex3f(-1.0, +1.0, 0.0); // top left
glVertex3f(-1.0, -1.0, 0.0); // bottom left
glVertex3f(+1.0, -1.0, 0.0); // bottom right
glVertex3f(+1.0, +1.0, 0.0); // top right
glEnd();
Использовать glColor4
вместо glColor3
. Например:
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
glColor4f(1.0f,1.0f,1.0f,0.5f);
glColor4f (пускают в ход r, пускают в ход g, пускают в ход b, альфу плавающую);
(в Вашем случае, возможно, clColor4b)
также удостоверьтесь, то смешивание включено.
(необходимо сбросить цвет к неальфе afterwads, который мог бы включить glGet* для сохранения старого vertexcolor),
Можно выбрать цвета на вершину
glBegin(GL_QUADS);
glColor4f(1.0, 0.0, 0.0, 0.5); // red, 50% alpha
glVertex3f(-1.0, +1.0, 0.0); // top left
// Make sure to set the color back since the color state persists
glVertex3f(-1.0, -1.0, 0.0); // bottom left
glVertex3f(+1.0, -1.0, 0.0); // bottom right
glVertex3f(+1.0, +1.0, 0.0); // top right
glEnd();