SuPerNoVi
09-12-2008, 05:46 AM
Hi bit of a long shot this but hoping to get some help with a simple animation I created using scriptaculous.
Basically when you click the next arrow a div with an image will disappear and the next one will display using Effect.Opacity. Just before the animation kicks in the full image displays using display:block; creating like a flicker between transitions.
Does anyone know how I can get this animation to not flicker?
Here's the function I'm using..
function transition(type)
{
if(type == 'forward' && selectedproduct <= 1)
{
selectedproduct = selectedproduct + 1;
if(selectedproduct == 1)
{
new Effect.Opacity('product2', { from: 0.0, to: 1.0, duration: 2 });
document.getElementById('product1').style.display="none";
document.getElementById('product2').style.display="block";
document.getElementById('product1info').style.display="none";
document.getElementById('product2info').style.display="block";
document.getElementById('visitsite').href="http://www.kelkoo.co.uk";
}
if(selectedproduct == 2)
{
new Effect.Opacity('product3', { from: 0.0, to: 1.0, duration: 2 });
document.getElementById('product2').style.display="none";
document.getElementById('product3').style.display="block";
document.getElementById('product2info').style.display="none";
document.getElementById('product3info').style.display="block";
document.getElementById('visitsite').href="http://www.bbc.co.uk";
}
}
if(type == 'back' && selectedproduct > 0)
{
selectedproduct = selectedproduct - 1;
if(selectedproduct == 0)
{
new Effect.Opacity('product1', { from: 0.0, to: 1.0, duration: 2 });
document.getElementById('product2').style.display="none";
document.getElementById('product1').style.display="block";
document.getElementById('product1info').style.display="block";
document.getElementById('product2info').style.display="none";
document.getElementById('visitsite').href="http://www.google.com";
}
if(selectedproduct == 1)
{
new Effect.Opacity('product2', { from: 0.0, to: 1.0, duration: 2 });
document.getElementById('product3').style.display="none";
document.getElementById('product2').style.display="block";
document.getElementById('product3info').style.display="none";
document.getElementById('product2info').style.display="block";
document.getElementById('visitsite').href="http://www.kelkoo.co.uk";
}
}
}
Basically when you click the next arrow a div with an image will disappear and the next one will display using Effect.Opacity. Just before the animation kicks in the full image displays using display:block; creating like a flicker between transitions.
Does anyone know how I can get this animation to not flicker?
Here's the function I'm using..
function transition(type)
{
if(type == 'forward' && selectedproduct <= 1)
{
selectedproduct = selectedproduct + 1;
if(selectedproduct == 1)
{
new Effect.Opacity('product2', { from: 0.0, to: 1.0, duration: 2 });
document.getElementById('product1').style.display="none";
document.getElementById('product2').style.display="block";
document.getElementById('product1info').style.display="none";
document.getElementById('product2info').style.display="block";
document.getElementById('visitsite').href="http://www.kelkoo.co.uk";
}
if(selectedproduct == 2)
{
new Effect.Opacity('product3', { from: 0.0, to: 1.0, duration: 2 });
document.getElementById('product2').style.display="none";
document.getElementById('product3').style.display="block";
document.getElementById('product2info').style.display="none";
document.getElementById('product3info').style.display="block";
document.getElementById('visitsite').href="http://www.bbc.co.uk";
}
}
if(type == 'back' && selectedproduct > 0)
{
selectedproduct = selectedproduct - 1;
if(selectedproduct == 0)
{
new Effect.Opacity('product1', { from: 0.0, to: 1.0, duration: 2 });
document.getElementById('product2').style.display="none";
document.getElementById('product1').style.display="block";
document.getElementById('product1info').style.display="block";
document.getElementById('product2info').style.display="none";
document.getElementById('visitsite').href="http://www.google.com";
}
if(selectedproduct == 1)
{
new Effect.Opacity('product2', { from: 0.0, to: 1.0, duration: 2 });
document.getElementById('product3').style.display="none";
document.getElementById('product2').style.display="block";
document.getElementById('product3info').style.display="none";
document.getElementById('product2info').style.display="block";
document.getElementById('visitsite').href="http://www.kelkoo.co.uk";
}
}
}