Попробуйте это:
document.observe( 'dom:loaded', function()
{
$$( 'img.a' ).first().observe( 'mouseover', function() { new Effect.Opacity( this, { duration: 1.5, from: 1, to: 0, queue: 'end' } ); } )
.observe( 'mouseout', function() { new Effect.Opacity( this, { duration: 1.5, from: 0, to: 1, queue: 'end' } ); } );
} );
Несколько замечаний:
Эффекты или анимации в Prototype выполняются с помощью дополнительной библиотеки Scriptaculous
document.observe выполняет код, как только DOM готов.
Параметры продолжительности каждого эффекта обрабатываются с помощью свойства duration.
Эффекты добавляются в конец глобальной очереди, поэтому, если кто-то наведет курсор мыши, а затем быстро наведет мышью, произойдет постепенное исчезновение цвета, а затем оно снова станет черно-белым. Потребовался бы дополнительный код, чтобы прервать постепенное исчезновение, чтобы окрасить, и затем исчезнуть к черному.